<!doctype html>
<html>
<head>
<meta charset='UTF-8'><meta name='viewport' content='width=device-width initial-scale=1'>

<style type='text/css'>html {overflow-x: initial !important;}:root { --bg-color: #ffffff; --text-color: #333333; --select-text-bg-color: #B5D6FC; --select-text-font-color: auto; --monospace: "Lucida Console",Consolas,"Courier",monospace; --title-bar-height: 20px; }
.mac-os-11 { --title-bar-height: 28px; }
html { font-size: 14px; background-color: var(--bg-color); color: var(--text-color); font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; -webkit-font-smoothing: antialiased; }
h1, h2, h3, h4, h5 { white-space: pre-wrap; }
body { margin: 0px; padding: 0px; height: auto; inset: 0px; font-size: 1rem; line-height: 1.42857; overflow-x: hidden; background: inherit; }
iframe { margin: auto; }
a.url { word-break: break-all; }
a:active, a:hover { outline: 0px; }
.in-text-selection, ::selection { text-shadow: none; background: var(--select-text-bg-color); color: var(--select-text-font-color); }
#write { margin: 0px auto; height: auto; width: inherit; word-break: normal; overflow-wrap: break-word; position: relative; white-space: normal; overflow-x: visible; padding-top: 36px; }
#write.first-line-indent p { text-indent: 2em; }
#write.first-line-indent li p, #write.first-line-indent p * { text-indent: 0px; }
#write.first-line-indent li { margin-left: 2em; }
.for-image #write { padding-left: 8px; padding-right: 8px; }
body.typora-export { padding-left: 30px; padding-right: 30px; }
.typora-export .footnote-line, .typora-export li, .typora-export p { white-space: pre-wrap; }
.typora-export .task-list-item input { pointer-events: none; }
@media screen and (max-width: 500px) {
  body.typora-export { padding-left: 0px; padding-right: 0px; }
  #write { padding-left: 20px; padding-right: 20px; }
}
#write li > figure:last-child { margin-bottom: 0.5rem; }
#write ol, #write ul { position: relative; }
img { max-width: 100%; vertical-align: middle; image-orientation: from-image; }
button, input, select, textarea { color: inherit; font: inherit; }
input[type="checkbox"], input[type="radio"] { line-height: normal; padding: 0px; }
*, ::after, ::before { box-sizing: border-box; }
#write h1, #write h2, #write h3, #write h4, #write h5, #write h6, #write p, #write pre { width: inherit; }
#write h1, #write h2, #write h3, #write h4, #write h5, #write h6, #write p { position: relative; }
p { line-height: inherit; }
h1, h2, h3, h4, h5, h6 { break-after: avoid-page; break-inside: avoid; orphans: 4; }
p { orphans: 4; }
h1 { font-size: 2rem; }
h2 { font-size: 1.8rem; }
h3 { font-size: 1.6rem; }
h4 { font-size: 1.4rem; }
h5 { font-size: 1.2rem; }
h6 { font-size: 1rem; }
.md-math-block, .md-rawblock, h1, h2, h3, h4, h5, h6, p { margin-top: 1rem; margin-bottom: 1rem; }
.hidden { display: none; }
.md-blockmeta { color: rgb(204, 204, 204); font-weight: 700; font-style: italic; }
a { cursor: pointer; }
sup.md-footnote { padding: 2px 4px; background-color: rgba(238, 238, 238, 0.7); color: rgb(85, 85, 85); border-radius: 4px; cursor: pointer; }
sup.md-footnote a, sup.md-footnote a:hover { color: inherit; text-transform: inherit; text-decoration: inherit; }
#write input[type="checkbox"] { cursor: pointer; width: inherit; height: inherit; }
figure { overflow-x: auto; margin: 1.2em 0px; max-width: calc(100% + 16px); padding: 0px; }
figure > table { margin: 0px; }
thead, tr { break-inside: avoid; break-after: auto; }
thead { display: table-header-group; }
table { border-collapse: collapse; border-spacing: 0px; width: 100%; overflow: auto; break-inside: auto; text-align: left; }
table.md-table td { min-width: 32px; }
.CodeMirror-gutters { border-right: 0px; background-color: inherit; }
.CodeMirror-linenumber { user-select: none; }
.CodeMirror { text-align: left; }
.CodeMirror-placeholder { opacity: 0.3; }
.CodeMirror pre { padding: 0px 4px; }
.CodeMirror-lines { padding: 0px; }
div.hr:focus { cursor: none; }
#write pre { white-space: pre-wrap; }
#write.fences-no-line-wrapping pre { white-space: pre; }
#write pre.ty-contain-cm { white-space: normal; }
.CodeMirror-gutters { margin-right: 4px; }
.md-fences { font-size: 0.9rem; display: block; break-inside: avoid; text-align: left; overflow: visible; white-space: pre; background: inherit; position: relative !important; }
.md-fences-adv-panel { width: 100%; margin-top: 10px; text-align: center; padding-top: 0px; padding-bottom: 8px; overflow-x: auto; }
#write .md-fences.mock-cm { white-space: pre-wrap; }
.md-fences.md-fences-with-lineno { padding-left: 0px; }
#write.fences-no-line-wrapping .md-fences.mock-cm { white-space: pre; overflow-x: auto; }
.md-fences.mock-cm.md-fences-with-lineno { padding-left: 8px; }
.CodeMirror-line, twitterwidget { break-inside: avoid; }
svg { break-inside: avoid; }
.footnotes { opacity: 0.8; font-size: 0.9rem; margin-top: 1em; margin-bottom: 1em; }
.footnotes + .footnotes { margin-top: 0px; }
.md-reset { margin: 0px; padding: 0px; border: 0px; outline: 0px; vertical-align: top; background: 0px 0px; text-decoration: none; text-shadow: none; float: none; position: static; width: auto; height: auto; white-space: nowrap; cursor: inherit; -webkit-tap-highlight-color: transparent; line-height: normal; font-weight: 400; text-align: left; box-sizing: content-box; direction: ltr; }
li div { padding-top: 0px; }
blockquote { margin: 1rem 0px; }
li .mathjax-block, li p { margin: 0.5rem 0px; }
li blockquote { margin: 1rem 0px; }
li { margin: 0px; position: relative; }
blockquote > :last-child { margin-bottom: 0px; }
blockquote > :first-child, li > :first-child { margin-top: 0px; }
.footnotes-area { color: rgb(136, 136, 136); margin-top: 0.714rem; padding-bottom: 0.143rem; white-space: normal; }
#write .footnote-line { white-space: pre-wrap; }
@media print {
  body, html { border: 1px solid transparent; height: 99%; break-after: avoid; break-before: avoid; font-variant-ligatures: no-common-ligatures; }
  #write { margin-top: 0px; border-color: transparent !important; padding-top: 0px !important; padding-bottom: 0px !important; }
  .typora-export * { -webkit-print-color-adjust: exact; }
  .typora-export #write { break-after: avoid; }
  .typora-export #write::after { height: 0px; }
  .is-mac table { break-inside: avoid; }
  #write > p:nth-child(1) { margin-top: 0px; }
  .typora-export-show-outline .typora-export-sidebar { display: none; }
  figure { overflow-x: visible; }
}
.footnote-line { margin-top: 0.714em; font-size: 0.7em; }
a img, img a { cursor: pointer; }
pre.md-meta-block { font-size: 0.8rem; min-height: 0.8rem; white-space: pre-wrap; background: rgb(204, 204, 204); display: block; overflow-x: hidden; }
p > .md-image:only-child:not(.md-img-error) img, p > img:only-child { display: block; margin: auto; }
#write.first-line-indent p > .md-image:only-child:not(.md-img-error) img { left: -2em; position: relative; }
p > .md-image:only-child { display: inline-block; width: 100%; }
#write .MathJax_Display { margin: 0.8em 0px 0px; }
.md-math-block { width: 100%; }
.md-math-block:not(:empty)::after { display: none; }
.MathJax_ref { fill: currentcolor; }
[contenteditable="true"]:active, [contenteditable="true"]:focus, [contenteditable="false"]:active, [contenteditable="false"]:focus { outline: 0px; box-shadow: none; }
.md-task-list-item { position: relative; list-style-type: none; }
.task-list-item.md-task-list-item { padding-left: 0px; }
.md-task-list-item > input { position: absolute; top: 0px; left: 0px; margin-left: -1.2em; margin-top: calc(1em - 10px); border: none; }
.math { font-size: 1rem; }
.md-toc { min-height: 3.58rem; position: relative; font-size: 0.9rem; border-radius: 10px; }
.md-toc-content { position: relative; margin-left: 0px; }
.md-toc-content::after, .md-toc::after { display: none; }
.md-toc-item { display: block; color: rgb(65, 131, 196); }
.md-toc-item a { text-decoration: none; }
.md-toc-inner:hover { text-decoration: underline; }
.md-toc-inner { display: inline-block; cursor: pointer; }
.md-toc-h1 .md-toc-inner { margin-left: 0px; font-weight: 700; }
.md-toc-h2 .md-toc-inner { margin-left: 2em; }
.md-toc-h3 .md-toc-inner { margin-left: 4em; }
.md-toc-h4 .md-toc-inner { margin-left: 6em; }
.md-toc-h5 .md-toc-inner { margin-left: 8em; }
.md-toc-h6 .md-toc-inner { margin-left: 10em; }
@media screen and (max-width: 48em) {
  .md-toc-h3 .md-toc-inner { margin-left: 3.5em; }
  .md-toc-h4 .md-toc-inner { margin-left: 5em; }
  .md-toc-h5 .md-toc-inner { margin-left: 6.5em; }
  .md-toc-h6 .md-toc-inner { margin-left: 8em; }
}
a.md-toc-inner { font-size: inherit; font-style: inherit; font-weight: inherit; line-height: inherit; }
.footnote-line a:not(.reversefootnote) { color: inherit; }
.reversefootnote { font-family: ui-monospace, sans-serif; }
.md-attr { display: none; }
.md-fn-count::after { content: "."; }
code, pre, samp, tt { font-family: var(--monospace); }
kbd { margin: 0px 0.1em; padding: 0.1em 0.6em; font-size: 0.8em; color: rgb(36, 39, 41); background: rgb(255, 255, 255); border: 1px solid rgb(173, 179, 185); border-radius: 3px; box-shadow: rgba(12, 13, 14, 0.2) 0px 1px 0px, rgb(255, 255, 255) 0px 0px 0px 2px inset; white-space: nowrap; vertical-align: middle; }
.md-comment { color: rgb(162, 127, 3); opacity: 0.6; font-family: var(--monospace); }
code { text-align: left; vertical-align: initial; }
a.md-print-anchor { white-space: pre !important; border-width: initial !important; border-style: none !important; border-color: initial !important; display: inline-block !important; position: absolute !important; width: 1px !important; right: 0px !important; outline: 0px !important; background: 0px 0px !important; text-decoration: initial !important; text-shadow: initial !important; }
.os-windows.monocolor-emoji .md-emoji { font-family: "Segoe UI Symbol", sans-serif; }
.md-diagram-panel > svg { max-width: 100%; }
[lang="flow"] svg, [lang="mermaid"] svg { max-width: 100%; height: auto; }
[lang="mermaid"] .node text { font-size: 1rem; }
table tr th { border-bottom: 0px; }
video { max-width: 100%; display: block; margin: 0px auto; }
iframe { max-width: 100%; width: 100%; border: none; }
.highlight td, .highlight tr { border: 0px; }
mark { background: rgb(255, 255, 0); color: rgb(0, 0, 0); }
.md-html-inline .md-plain, .md-html-inline strong, mark .md-inline-math, mark strong { color: inherit; }
.md-expand mark .md-meta { opacity: 0.3 !important; }
mark .md-meta { color: rgb(0, 0, 0); }
@media print {
  .typora-export h1, .typora-export h2, .typora-export h3, .typora-export h4, .typora-export h5, .typora-export h6 { break-inside: avoid; }
}
.md-diagram-panel .messageText { stroke: none !important; }
.md-diagram-panel .start-state { fill: var(--node-fill); }
.md-diagram-panel .edgeLabel rect { opacity: 1 !important; }
.md-fences.md-fences-math { font-size: 1em; }
.md-fences-advanced:not(.md-focus) { padding: 0px; white-space: nowrap; border: 0px; }
.md-fences-advanced:not(.md-focus) { background: inherit; }
.typora-export-show-outline .typora-export-content { max-width: 1440px; margin: auto; display: flex; flex-direction: row; }
.typora-export-sidebar { width: 300px; font-size: 0.8rem; margin-top: 80px; margin-right: 18px; }
.typora-export-show-outline #write { --webkit-flex: 2; flex: 2 1 0%; }
.typora-export-sidebar .outline-content { position: fixed; top: 0px; max-height: 100%; overflow: hidden auto; padding-bottom: 30px; padding-top: 60px; width: 300px; }
@media screen and (max-width: 1024px) {
  .typora-export-sidebar, .typora-export-sidebar .outline-content { width: 240px; }
}
@media screen and (max-width: 800px) {
  .typora-export-sidebar { display: none; }
}
.outline-content li, .outline-content ul { margin-left: 0px; margin-right: 0px; padding-left: 0px; padding-right: 0px; list-style: none; overflow-wrap: anywhere; }
.outline-content ul { margin-top: 0px; margin-bottom: 0px; }
.outline-content strong { font-weight: 400; }
.outline-expander { width: 1rem; height: 1.42857rem; position: relative; display: table-cell; vertical-align: middle; cursor: pointer; padding-left: 4px; }
.outline-expander::before { content: ""; position: relative; font-family: Ionicons; display: inline-block; font-size: 8px; vertical-align: middle; }
.outline-item { padding-top: 3px; padding-bottom: 3px; cursor: pointer; }
.outline-expander:hover::before { content: ""; }
.outline-h1 > .outline-item { padding-left: 0px; }
.outline-h2 > .outline-item { padding-left: 1em; }
.outline-h3 > .outline-item { padding-left: 2em; }
.outline-h4 > .outline-item { padding-left: 3em; }
.outline-h5 > .outline-item { padding-left: 4em; }
.outline-h6 > .outline-item { padding-left: 5em; }
.outline-label { cursor: pointer; display: table-cell; vertical-align: middle; text-decoration: none; color: inherit; }
.outline-label:hover { text-decoration: underline; }
.outline-item:hover { border-color: rgb(245, 245, 245); background-color: var(--item-hover-bg-color); }
.outline-item:hover { margin-left: -28px; margin-right: -28px; border-left: 28px solid transparent; border-right: 28px solid transparent; }
.outline-item-single .outline-expander::before, .outline-item-single .outline-expander:hover::before { display: none; }
.outline-item-open > .outline-item > .outline-expander::before { content: ""; }
.outline-children { display: none; }
.info-panel-tab-wrapper { display: none; }
.outline-item-open > .outline-children { display: block; }
.typora-export .outline-item { padding-top: 1px; padding-bottom: 1px; }
.typora-export .outline-item:hover { margin-right: -8px; border-right: 8px solid transparent; }
.typora-export .outline-expander::before { content: "+"; font-family: inherit; top: -1px; }
.typora-export .outline-expander:hover::before, .typora-export .outline-item-open > .outline-item > .outline-expander::before { content: "−"; }
.typora-export-collapse-outline .outline-children { display: none; }
.typora-export-collapse-outline .outline-item-open > .outline-children, .typora-export-no-collapse-outline .outline-children { display: block; }
.typora-export-no-collapse-outline .outline-expander::before { content: "" !important; }
.typora-export-show-outline .outline-item-active > .outline-item .outline-label { font-weight: 700; }
.md-inline-math-container mjx-container { zoom: 0.95; }
mjx-container { break-inside: avoid; }
.md-alert.md-alert-note { border-left-color: rgb(9, 105, 218); }
.md-alert.md-alert-important { border-left-color: rgb(130, 80, 223); }
.md-alert.md-alert-warning { border-left-color: rgb(154, 103, 0); }
.md-alert.md-alert-tip { border-left-color: rgb(31, 136, 61); }
.md-alert.md-alert-caution { border-left-color: rgb(207, 34, 46); }
.md-alert { padding: 0px 1em; margin-bottom: 16px; color: inherit; border-left: 0.25em solid rgb(0, 0, 0); }
.md-alert-text-note { color: rgb(9, 105, 218); }
.md-alert-text-important { color: rgb(130, 80, 223); }
.md-alert-text-warning { color: rgb(154, 103, 0); }
.md-alert-text-tip { color: rgb(31, 136, 61); }
.md-alert-text-caution { color: rgb(207, 34, 46); }
.md-alert-text { font-size: 0.9rem; font-weight: 700; }
.md-alert-text svg { fill: currentcolor; position: relative; top: 0.125em; margin-right: 1ch; overflow: visible; }
.md-alert-text-container::after { content: attr(data-text); text-transform: capitalize; pointer-events: none; margin-right: 1ch; }


/*!
 * typora-themeable
 * v1.1.0
 * https://github.com/jhildenbiddle/typora-themeable
 * (c) 2022-2024 John Hildenbiddle <http://hildenbiddle.com>
 * MIT license
 */
:root{
    --red-50:#fef2f2;
    --red-100:#fee2e2;
    --red-200:#fecaca;
    --red-300:#fca5a5;
    --red-400:#f87171;
    --red-500:#ef4444;
    --red-600:#dc2626;
    --red-700:#b91c1c;
    --red-800:#991b1b;
    --red-900:#7f1d1d;

    --orange-50:#fff7ed;
    --orange-100:#ffedd5;
    --orange-200:#fed7aa;
    --orange-300:#fdba74;
    --orange-400:#fb923c;
    --orange-500:#f97316;
    --orange-600:#ea580c;
    --orange-700:#c2410c;
    --orange-800:#9a3412;
    --orange-900:#7c2d12;

    --amber-50:#fffbeb;
    --amber-100:#fef3c7;
    --amber-200:#fde68a;
    --amber-300:#fcd34d;
    --amber-400:#fbbf24;
    --amber-500:#f59e0b;
    --amber-600:#d97706;
    --amber-700:#b45309;
    --amber-800:#92400e;
    --amber-900:#78350f;

    --yellow-50:#fefce8;
    --yellow-100:#fef9c3;
    --yellow-200:#fef08a;
    --yellow-300:#fde047;
    --yellow-400:#facc15;
    --yellow-500:#eab308;
    --yellow-600:#ca8a04;
    --yellow-700:#a16207;
    --yellow-800:#854d0e;
    --yellow-900:#713f12;

    --lime-50:#f7fee7;
    --lime-100:#ecfccb;
    --lime-200:#d9f99d;
    --lime-300:#bef264;
    --lime-400:#a3e635;
    --lime-500:#84cc16;
    --lime-600:#65a30d;
    --lime-700:#4d7c0f;
    --lime-800:#3f6212;
    --lime-900:#365314;

    --green-50:#f0fdf4;
    --green-100:#dcfce7;
    --green-200:#bbf7d0;
    --green-300:#86efac;
    --green-400:#4ade80;
    --green-500:#22c55e;
    --green-600:#16a34a;
    --green-700:#15803d;
    --green-800:#166534;
    --green-900:#14532d;

    --emerald-50:#ecfdf5;
    --emerald-100:#d1fae5;
    --emerald-200:#a7f3d0;
    --emerald-300:#6ee7b7;
    --emerald-400:#34d399;
    --emerald-500:#10b981;
    --emerald-600:#059669;
    --emerald-700:#047857;
    --emerald-800:#065f46;
    --emerald-900:#064e3b;

    --teal-50:#f0fdfa;
    --teal-100:#ccfbf1;
    --teal-200:#99f6e4;
    --teal-300:#5eead4;
    --teal-400:#2dd4bf;
    --teal-500:#14b8a6;
    --teal-600:#0d9488;
    --teal-700:#0f766e;
    --teal-800:#115e59;
    --teal-900:#134e4a;

    --cyan-50:#ecfeff;
    --cyan-100:#cffafe;
    --cyan-200:#a5f3fc;
    --cyan-300:#67e8f9;
    --cyan-400:#22d3ee;
    --cyan-500:#06b6d4;
    --cyan-600:#0891b2;
    --cyan-700:#0e7490;
    --cyan-800:#155e75;
    --cyan-900:#164e63;

    --sky-50:#f0f9ff;
    --sky-100:#e0f2fe;
    --sky-200:#bae6fd;
    --sky-300:#7dd3fc;
    --sky-400:#38bdf8;
    --sky-500:#0ea5e9;
    --sky-600:#0284c7;
    --sky-700:#0369a1;
    --sky-800:#075985;
    --sky-900:#0c4a6e;

    --blue-50:#eff6ff;
    --blue-100:#dbeafe;
    --blue-200:#bfdbfe;
    --blue-300:#93c5fd;
    --blue-400:#60a5fa;
    --blue-500:#3b82f6;
    --blue-600:#2563eb;
    --blue-700:#1d4ed8;
    --blue-800:#1e40af;
    --blue-900:#1e3a8a;

    --indigo-50:#eef2ff;
    --indigo-100:#e0e7ff;
    --indigo-200:#c7d2fe;
    --indigo-300:#a5b4fc;
    --indigo-400:#818cf8;
    --indigo-500:#6366f1;
    --indigo-600:#4f46e5;
    --indigo-700:#4338ca;
    --indigo-800:#3730a3;
    --indigo-900:#312e81;

    --violet-50:#f5f3ff;
    --violet-100:#ede9fe;
    --violet-200:#ddd6fe;
    --violet-300:#c4b5fd;
    --violet-400:#a78bfa;
    --violet-500:#8b5cf6;
    --violet-600:#7c3aed;
    --violet-700:#6d28d9;
    --violet-800:#5b21b6;
    --violet-900:#4c1d95;

    --purple-50:#faf5ff;
    --purple-100:#f3e8ff;
    --purple-200:#e9d5ff;
    --purple-300:#d8b4fe;
    --purple-400:#c084fc;
    --purple-500:#a855f7;
    --purple-600:#9333ea;
    --purple-700:#7e22ce;
    --purple-800:#6b21a8;
    --purple-900:#581c87;

    --fuchsia-50:#fdf4ff;
    --fuchsia-100:#fae8ff;
    --fuchsia-200:#f5d0fe;
    --fuchsia-300:#f0abfc;
    --fuchsia-400:#e879f9;
    --fuchsia-500:#d946ef;
    --fuchsia-600:#c026d3;
    --fuchsia-700:#a21caf;
    --fuchsia-800:#86198f;
    --fuchsia-900:#701a75;

    --pink-50:#fdf2f8;
    --pink-100:#fce7f3;
    --pink-200:#fbcfe8;
    --pink-300:#f9a8d4;
    --pink-400:#f472b6;
    --pink-500:#ec4899;
    --pink-600:#db2777;
    --pink-700:#be185d;
    --pink-800:#9d174d;
    --pink-900:#831843;

    --rose-50:#fff1f2;
    --rose-100:#ffe4e6;
    --rose-200:#fecdd3;
    --rose-300:#fda4af;
    --rose-400:#fb7185;
    --rose-500:#f43f5e;
    --rose-600:#e11d48;
    --rose-700:#be123c;
    --rose-800:#9f1239;
    --rose-900:#881337;
    --slate-50:#f8fafc;
    --slate-100:#f1f5f9;
    --slate-200:#e2e8f0;
    --slate-300:#cbd5e1;
    --slate-400:#94a3b8;
    --slate-500:#64748b;
    --slate-600:#475569;
    --slate-700:#334155;
    --slate-800:#1e293b;
    --slate-900:#0f172a;

    --gray-50:#f9fafb;
    --gray-100:#f3f4f6;
    --gray-200:#e5e7eb;
    --gray-300:#d1d5db;
    --gray-400:#9ca3af;
    --gray-500:#6b7280;
    --gray-600:#4b5563;
    --gray-700:#374151;
    --gray-800:#1f2937;
    --gray-900:#111827;

    --zinc-50:#fafafa;
    --zinc-100:#f4f4f5;
    --zinc-200:#e4e4e7;
    --zinc-300:#d4d4d8;
    --zinc-400:#a1a1aa;
    --zinc-500:#71717a;
    --zinc-600:#52525b;
    --zinc-700:#3f3f46;
    --zinc-800:#27272a;
    --zinc-900:#18181b;

    --neutral-50:#fafafa;
    --neutral-100:#f5f5f5;
    --neutral-200:#e5e5e5;
    --neutral-300:#d4d4d4;
    --neutral-400:#a3a3a3;
    --neutral-500:#737373;
    --neutral-600:#525252;
    --neutral-700:#404040;
    --neutral-800:#262626;
    --neutral-900:#171717;

    --stone-50:#fafaf9;
    --stone-100:#f5f5f4;
    --stone-200:#e7e5e4;
    --stone-300:#d6d3d1;
    --stone-400:#a8a29e;
    --stone-500:#78716c;
    --stone-600:#57534e;
    --stone-700:#44403c;
    --stone-800:#292524;
    --stone-900:#1c1917;
}
:root{
    --color-primary:var(--sky-600);
    --color-secondary:var(--violet-500);
    --marked-background:var(--yellow-300);
    --search-match-background:var(--pink-100);
    --search-match-border-color:var(--pink-500);
    --selection-background:var(--sky-100);
    --mono-50:var(--neutral-50);
    --mono-100:var(--neutral-100);
    --mono-200:var(--neutral-200);
    --mono-300:var(--neutral-300);
    --mono-400:var(--neutral-400);
    --mono-500:var(--neutral-500);
    --mono-600:var(--neutral-600);
    --mono-700:var(--neutral-700);
    --mono-800:var(--neutral-800);
    --mono-900:var(--neutral-900);
    --font-family:"InterVariable", "Inter", system, -apple-system, ".SFNSText-Regular", "San Francisco", "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", sans-serif;
    --font-family-mono:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;
    --font-size:16px;
    --font-size-mono:0.9375em;
    --font-size-ui:14px;
    --font-weight:400;
    --font-weight-mono:500;
}
:root{
    --color-hover:var(--mono-200);
    --color-hover-content:inherit;
    --color-primary-content:#fff;
    --color-status:var(--mono-500);
    --color-status-content:#fff;
    --font-family-diagram:var(--font-family);
    --font-family-ui:var(--font-family);
    --font-size-xxl:calc(var(--font-size-xl) * var(--modular-scale));
    --font-size-xl:calc(var(--font-size-l) * var(--modular-scale));
    --font-size-l:calc(1rem * var(--modular-scale));
    --font-size-m:1rem;
    --font-size-s:max(0.75rem, calc(1rem / var(--modular-scale)));
    --font-size-xs:max(0.6875rem, calc(var(--font-size-s) / var(--modular-scale)));
    --font-size-ui-xl:calc(var(--font-size-ui-l) * var(--modular-scale));
    --font-size-ui-l:calc(var(--font-size-ui) * var(--modular-scale));
    --font-size-ui-s:max(12px, calc(var(--font-size-ui) * 0.857));
    --line-height:1.6;
    --modular-scale:1.414;
    --background-color:var(--mono-50);
    --border-color:var(--mono-200);
    --border-radius:6px;
    --border-radius-s:3px;
    --border-radius-xs:1px;
    --btn-toggle-active-background:;
    --btn-toggle-active-color:var(--color-primary);
    --btn-toggle-background:;
    --btn-toggle-color:var(--mono-400);
    --btn-toggle-hover-background:var(--color-hover);
    --btn-toggle-hover-color:var(--color-hover-content);
    --drop-shadow:drop-shadow(0 3px 5px rgba(0, 0, 0, 0.15));
    --input-background:#fff;
    --input-border-color:var(--border-color);
    --input-focus-color:var(--color-primary);
    --input-color:var(--text-color);
    --input-placeholder-color:var(--mono-400);
    --kbd-background:var(--mono-600);
    --kbd-border-color:transparent;
    --kbd-color:#fff;
    --max-width:85ch;
    --md-brackets:var(--mono-400);
    --md-brackets-expanded:var(--color-secondary);
    --md-tags:var(--md-brackets);
    --md-tags-expanded:var(--md-brackets-expanded);
    --menu-background:#fff;
    --menu-border-width:0;
    --menu-color:inherit;
    --scrollbar-thumb-color:var(--mono-300);
    --scrollbar-width:6px;
    --search-match-color:var(--text-color);
    --selection-color:;
    --sidebar-active-background:var(--color-hover);
    --sidebar-active-color:var(--color-hover-content);
    --sidebar-background:var(--mono-100);
    --sidebar-border-color:var(--mono-200);
    --sidebar-border-width:1px;
    --sidebar-color:var(--mono-700);
    --sidebar-hover-background:var(--color-hover);
    --sidebar-hover-color:var(--color-hover-content);
    --text-color:var(--mono-700);
    --tooltip-background:var(--mono-50);
    --tooltip-text-color:var(--mono-800);
    --blockquote-background:var(--mono-100);
    --blockquote-border-color:var(--color-primary);
    --blockquote-border-width:0 0 0 4px;
    --blockquote-color:inherit;
    --blockquote-padding:1rem 1.5rem 1rem 1.5rem;
    --code-inline-background:var(--mono-200);
    --code-inline-color:var(--strong-color);
    --code-padding-tb:1.5em;
    --code-padding-lr:1.5em;
    --checkbox-background:var(--mono-100);
    --checkbox-border-color:var(--mono-300);
    --checkbox-border-radius:var(--border-radius-s);
    --checkbox-check-color:var(--color-primary-content);
    --checkbox-size:1.2rem;
    --counter-color:inherit;
    --h1-font-size:var(--font-size-xxl);
    --h1-letter-spacing:-0.03em;
    --h2-font-size:var(--font-size-xl);
    --h2-letter-spacing:-0.02em;
    --h3-font-size:var(--font-size-l);
    --h3-letter-spacing:-0.01em;
    --h4-font-size:var(--font-size-m);
    --h5-font-size:var(--font-size-m);
    --h6-font-size:var(--font-size-s);
    --heading-color:var(--mono-800);
    --heading-font-weight:800;
    --hr-color:var(--mono-300);
    --hr-height:2px;
    --link-color:var(--color-primary);
    --marked-color:inherit;
    --marker-color:inherit;
    --strong-color:var(--mono-800);
    --strong-font-weight:600;
    --table-edit-active-background:var(--mono-500);
    --table-edit-active-color:var(--mono-50);
    --table-edit-background:var(--mono-200);
    --table-edit-color:var(--mono-600);
    --table-edit-hover-background:var(--mono-300);
    --table-edit-hover-color:var(--table-edit-color);
    --tbody-border-color:unset;
    --tbody-border-width:unset;
    --td-border-color:unset;
    --td-border-width:unset;
    --td-padding:0.5rem 0.75rem;
    --th-border-color:unset;
    --th-border-width:unset;
    --th-color:var(--strong-color);
    --th-font-weight:var(--strong-font-weight);
    --th-padding:0 0.75rem 0.5rem 0.75rem;
    --thead-border-color:var(--mono-300);
    --thead-border-width:0 0 2px 0;
    --tr-alt-background:var(--mono-100);
    --tr-border-color:var(--mono-200);
    --tr-border-width:0 0 1px 0;
    --code-activeline-background:var(--mono-200);
    --code-atom-color:var(--amber-600);
    --code-attribute-color:var(--sky-600);
    --code-background:var(--mono-100);
    --code-bracket-color:var(--mono-400);
    --code-builtin-color:var(--emerald-600);
    --code-comment-color:var(--mono-400);
    --code-cursor-border:2px solid var(--color-primary);
    --code-def-color:var(--violet-600);
    --code-error-color:var(--red-600);
    --code-gutter-border-color:var(--mono-200);
    --code-keyword-color:var(--sky-600);
    --code-language-background:var(--code-activeline-background);
    --code-language-color:var(--code-text-color);
    --code-linenumber-color:var(--mono-400);
    --code-link-color:;
    --code-meta-color:var(--rose-600);
    --code-number-color:;
    --code-operator-color:var(--rose-600);
    --code-property-color:var(--sky-600);
    --code-qualifier-color:var(--emerald-600);
    --code-selected-background:var(--selection-background);
    --code-string-color:;
    --code-string-2-color:;
    --code-tag-color:var(--violet-600);
    --code-text-color:var(--mono-700);
    --code-type-color:var(--rose-600);
    --code-variable-color:var(--cyan-600);
    --code-variable-2-color:var(--cyan-600);
    --code-variable-3-color:var(--emerald-600);
    --mermaid-theme:neutral;
    --mermaid-font-family:;
    --mermaid-flowchart-curve:basis;
    --mermaid-sequence-numbers:off;
    --mermaid--gantt-left-padding:75;
    --sequence-theme:simple;
}
@media print{
    :root{
        --background-color:#fff;
    }
}
:root{
    --active-file-bg-color:var(--sidebar-active-background);
    --active-file-text-color:var(--sidebar-active-color);
    --bg-color:var(--background-color);
    --control-text-color:var(--sidebar-color);
    --control-text-hover-color:var(--sidebar-hover-color);
    --item-hover-bg-color:var(--color-hover);
    --item-hover-text-color:var(--color-hover-content);
    --md-char-color:var(--md-brackets-expanded);
    --meta-content-color:inherit;
    --monospace:var(--font-family-mono);
    --search-select-bg-color:var(--search-match-background);
    --search-select-text-color:var(--search-match-color);
    --select-text-bg-color:var(--selection-background);
    --window-border:1px solid var(--border-color);
}
*,
::before,
::after{
    box-sizing:border-box;
    border:0;
    border-style:solid;
    border-color:currentColor;
}
html,
body{
    margin:0;
    line-height:var(--line-height);
}
html{
    accent-color:var(--color-primary);
    font-family:var(--font-family-ui);
    font-feature-settings:"liga" 1, "calt" 1;
    font-optical-sizing:auto;
    font-size:var(--font-size);
    font-weight:var(--font-weight);
}
a,
a code{
    color:var(--link-color);
}
a{
    text-decoration:underline;
}
:where(abbr, dfn)[title]{
    cursor:help;
    border-bottom:1px dotted;
}
b,
strong{
    color:var(--strong-color);
    font-weight:var(--strong-font-weight);
}
blockquote{
    margin:1.5rem 0;
    padding:var(--blockquote-padding);
    border-width:var(--blockquote-border-width);
    border-color:var(--blockquote-border-color);
    background:var(--blockquote-background);
    color:var(--blockquote-color);
}
code,
kbd,
samp,
pre{
    font-family:var(--font-family-mono);
    font-size:var(--font-size-mono);
}
kbd{
    padding:.2em .75em .3em .75em;
    border-color:var(--kbd-border-color);
    border-radius:var(--border-radius);
    background:var(--kbd-background);
    color:var(--kbd-color);
    box-shadow:none;
}
code,
pre{
    font-size:var(--font-size-mono);
    font-weight:var(--font-weight-mono);
}
hr{
    border-color:var(--hr-color);
    border-top-width:var(--hr-height);
}
input::placeholder,
textarea::placeholder{
    color:var(--input-placeholder-color) !important;
}
mark{
    border-radius:var(--border-radius-xs);
    box-shadow:0 0 0 1px var(--marked-background);
    background:var(--marked-background);
    color:var(--marked-color);
}
p{
    margin-top:1em;
    margin-bottom:1em;
}
::-webkit-scrollbar-thumb{
    background-color:var(--scrollbar-thumb-color);
}
.mac-os{
    ::-webkit-scrollbar{
      max-width:var(--scrollbar-width);
      max-height:var(--scrollbar-width);
    }

    ::-webkit-scrollbar-thumb{
        border-radius:100vw;
    }
}
body:not([class*="seamless"]) :is(#typora-sidebar, content){
    border-top:1px solid var(--border-color);
}
.blink-area{
  -webkit-animation:none;
          animation:none;
}
.btn-primary,
.btn-primary:hover{
    background:var(--color-primary);
    color:var(--color-primary-content);
}
.btn-primary:hover{
    filter:contrast(1.2);
}
.context-menu,
.dropdown-menu,
:is(.context-menu, .dropdown-menu) > li > a{
    color:var(--menu-color);
}
.context-menu,
.dropdown-menu{
    border:var(--menu-border-width) solid var(--border-color);
    background:var(--menu-background);
    font-size:var(--font-size-ui);
}
:is(.context-menu, .dropdown-menu) .ty-menu-shortcut{
    font-family:var(--font-family-ui);
}
.context-menu .divider{
    border-top:1px solid var(--border-color);
    opacity:1;
}
.form-control:focus{
    -webkit-box-shadow:none;
            box-shadow:none;
}
.code-tooltip-content *{
    color:unset;
}
#ty-tooltip{
    border:0;
    background:var(--tooltip-background);
    color:var(--tooltip-text-color);
}
#ty-auto-suggest{
    border-radius:var(--border-radius);
    font-size:var(--font-size-s);
    box-shadow:none;
    filter:var(--drop-shadow);
}
.md-search-hit,
.md-search-hit.md-search-select,
.md-search-select,
body :is(#write, #typora-source) .cm-search-hit,
.ty-file-search-match-text,
.ty-outline-hit[class]{
    background-color:unset !important;
    background:var(--search-match-background) !important;
    color:var(--search-match-color) !important;
}
.md-search-hit,
.md-search-hit.md-search-select,
.md-search-select,
body :is(#write, #typora-source) .cm-search-hit{
    border-radius:var(--border-radius-xs);
    box-shadow:0 0 0 2px var(--search-match-border-color);
}
.ty-file-search-match-text,
.ty-outline-hit[class]{
    padding-right:1px;
    padding-left:1px;
    border:2px solid var(--search-match-border-color);
    border-radius:var(--border-radius-s);
    font-weight:var(--font-weight);
}
#write{
    max-width:var(--max-width);
    color:var(--text-color);
    font-family:var(--font-family);
}
#write > :first-child{
    margin-top:0;
}
#write > :last-child{
    margin-bottom:0;
}
footer.ty-footer{
    border-color:var(--mono-200);
}
.typora-sourceview-on #toggle-sourceview-btn{
    background:none;
    opacity:1;
}
.footer-item:hover,
.typora-sourceview-on #toggle-sourceview-btn:hover{
    background:var(--sidebar-hover-background);
    color:var(--sidebar-hover-color);
}
#typora-quick-open{
    top:calc(var(--title-bar-height) + 5px);
    padding:0;
    border:var(--sidebar-border-width) solid var(--sidebar-border-color);
    border-radius:var(--border-radius);
    background:var(--sidebar-background);
    color:var(--sidebar-color);
    box-shadow:none;
    filter:var(--drop-shadow);
}
#typora-quick-open-input,
.typora-quick-open-list{
    padding:0.5em;
}
#typora-quick-open-input input{
    max-height:unset;
    overflow:unset;
    border-color:var(--input-border-color);
    border-radius:var(--border-radius-s);
    background:var(--input-background);
    color:var(--input-color);
    font-size:var(--font-size-ui);
    line-height:2;
}
#typora-quick-open-input input:focus{
    border-color:var(--input-focus-color);
}
.ty-quick-open-category-title,
.typora-quick-open-item-path{
    opacity:0.7;
}
.ty-quick-open-category-title{
    margin-top:0.5rem;
    margin-bottom:0.15rem;
    font-size:0.9em;
    height:auto;
    line-height:var(--line-height);
    text-transform:uppercase;
    letter-spacing:0.5px;
    font-weight:600;
}
.ty-quick-open-category.ty-has-prev .ty-quick-open-category-title{
    margin-top:0.5rem;
    padding-top:0.5rem;
}
.typora-quick-open-item,
.typora-quick-open-item-path{
    max-height:auto;
    line-height:var(--line-height);
}
.typora-quick-open-item{
    height:auto;
    padding-top:0.25em;
    padding-bottom:0.25em;
    font-size:var(--font-size-ui);
    cursor:pointer;
}
.typora-quick-open-item.active{
    border-radius:var(--border-radius-s);
}
.typora-quick-open-item-path{
    font-size:var(--font-size-ui-s);
}
.typora-quick-open-item-title{
    margin-bottom:0.25em;
    line-height:var(--line-height);
}
.typora-quick-open-item-title b{
    border-radius:var(--border-radius-xs);
    box-shadow:0 0 0 1px var(--marked-background);
    background:var(--marked-background);
    color:var(--marked-color);
}
.mac-seamless-mode #md-searchpanel{
    max-height:63px;
}
#md-searchpanel{
    border-bottom:1px solid var(--sidebar-border-color);
    background:var(--sidebar-background);
    color:var(--sidebar-color);
    box-shadow:none;
    filter:var(--drop-shadow);
}
#md-searchpanel input,
#md-searchpanel .btn,
#searchpanel-msg{
    border-radius:var(--border-radius-s);
    font-size:var(--font-size-ui-s);
}
#md-searchpanel input{
    background:var(--input-background);
    border-color:var(--input-border-color);
    color:var(--input-color);
}
#md-searchpanel input:focus,
#md-searchpanel input:not(:placeholder-shown){
    border-color:var(--input-focus-color);
}
#md-searchpanel .btn:not(.close-btn):hover{
    box-shadow:none;
}
.searchpanel-search-option-btn,
.searchpanel-search-option-btn:hover,
.searchpanel-search-option-btn.active{
    opacity:1;
}
.searchpanel-search-option-btn{
    top:4px;
    padding:3px 2px;
    border:0;
    background:var(--btn-toggle-background);
    color:var(--btn-toggle-color);
}
.searchpanel-search-option-btn:hover{
    background:var(--btn-toggle-hover-background);
    color:var(--btn-toggle-hover-color);
}
.searchpanel-search-option-btn.active{
    background:var(--btn-toggle-active-background);
    color:var(--btn-toggle-active-color);
}
#search-panel-status .error-message{
    padding:0.25em 0.5em;
    border-radius:var(--border-radius-s);
    background:var(--color-status);
    color:var(--color-status-content);
}
#typora-sidebar{
    border-top:none !important;
    border-right:var(--sidebar-border-width) solid var(--sidebar-border-color);
    background:var(--sidebar-background);
    color:var(--sidebar-color);
}
#typora-sidebar,
#sidebar-files-menu.dropdown-menu > li,
.sidebar-content-content,
.ty-search-item-line{
    font-size:var(--font-size-ui);
}
#typora-sidebar input{
    border-radius:var(--border-radius-s);
    background:var(--input-background);
    color:var(--input-color);
}
.file-list-item-time,
.file-list-item-parent-loc,
.file-list-item-summary,
.ty-search-item-line{
    font-family:var(--font-family-ui);
}
.ty-search-item-line:hover{
    background-color:var(--sidebar-hover-background);
    color:var(--sidebar-hover-color);
}
.outline-item-active::after,
.active .file-list-item-file-name::after,
.active .file-node-content::after{
    content:"";
    position:absolute;
    top:calc(50% - 4px);
    right:0;
    width:8px;
    height:8px;
    border-radius:50%;
    background:var(--color-primary);
}
.info-panel-tab-border{
    border-radius:100vw;
}
.active-tab-files #info-panel-tab-file,
.active-tab-files #info-panel-tab-file:hover,
.active-tab-outline #info-panel-tab-outline,
.active-tab-outline #info-panel-tab-outline:hover,
.ty-show-search #info-panel-tab-search{
    font-weight:var(--strong-font-weight);
    color:var(--strong-color);
}
.active-tab-files #info-panel-tab-file .info-panel-tab-border,
.active-tab-outline #info-panel-tab-outline .info-panel-tab-border,
.ty-show-search #info-panel-tab-search .info-panel-tab-border{
    height:3px;
    background-color:var(--color-primary);
}
.sidebar-tabs{
    border-bottom:var(--sidebar-border-width) solid var(--sidebar-border-color);
}
.sidebar-tab{
    font-weight:var(--strong-font-weight);
    text-transform:none;
}
#outline-content{
    line-height:var(--line-height);
}
.outline-content{
    padding-top:0;
}
.pin-outline #outline-content .outline-active strong,
.pin-outline .outline-active{
    font-weight:var(--strong-font-weight);
}
.pin-outline .outline-active{
    font-weight:var(--font-weight);
}
.outline-item,
.no-collapse-outline .outline-item{
    margin:1px 0;
}
.outline-item{
    display:flex;
    align-items:center;
    position:relative;
    padding-top:0.4em;
    padding-bottom:0.4em;
}
.outline-item::before{
    content:"";
    position:absolute;
    top:0;
    bottom:0;
    right:-100px;
    left:-100px;
}
.outline-item:hover{
    margin-right:0;
    margin-left:0;
    border-right:0;
    border-left:0;
    background:none;
    color:var(--sidebar-hover-color);
}
.outline-item:hover::before{
    background:var(--sidebar-hover-background);
}
.outline-item > *{
    position:relative;
}
.outline-expander,
.outline-expander::before{
    --icon-width:10px;

    width:calc(var(--icon-width) * 2);
    padding:0;
    font-size:var(--icon-width);
    line-height:var(--icon-width);
}
.outline-expander{
    display:unset;
    height:auto;
    text-align:center;
}
.outline-label{
    width:100%;
    display:inline-block;
    overflow:hidden;
    white-space:nowrap;
    text-overflow:ellipsis;
}
.outline-label:hover{
    text-decoration:none;
}
.outline-item-active{
    position:relative;
    padding-right:8px;
    color:var(--sidebar-active-color);
}
.outline-item-active::before{
    background:var(--sidebar-active-background);
}
.outline-item-active .outline-label{
    padding-right:10px;
}
.file-node-icon.fa-folder::before{
    content:"\f114";
}
.file-node-open-state{
    margin-top:-2px;
    margin-right:3px;
    margin-left:-2px;
}
.file-node-collapsed .fa-caret-right::before{
    content:"\f125";
    font-family:Ionicons;
    font-size:10px;
}
.file-node-expanded .fa-caret-down::before{
    content:"\f123";
    font-family:Ionicons;
    font-size:10px;
}
.file-list-item-file-ext-part,
.file-list-item-parent-loc,
.file-list-item-summary,
.file-list-item-time{
    opacity:0.8;
}
.file-list-item-parent-loc,
.file-list-item-time{
    margin-bottom:3px;
    font-size:var(--font-size-ui-s);
}
.file-list-item{
    border-bottom:var(--sidebar-border-width) solid var(--sidebar-border-color);
}
.file-list-item:hover{
    background-color:var(--sidebar-hover-background);
    color:var(--sidebar-hover-color);
}
.file-list-item:not(.active){
    opacity:1;
}
.file-list-item.active{
    background:var(--sidebar-active-background);
    color:var(--sidebar-active-color);
}
.file-list-item-file-name{
    position:relative;
    margin-bottom:4px;
}
.active .file-list-item-file-name{
    padding-right:20px;
}
.file-list-item-file-name-part{
    font-weight:var(--strong-font-weight);
    color:var(--strong-color);
}
.active .file-list-item-file-name::after{
    right:8px;
}
.file-list-item-summary{
    height:auto;
    max-height:calc(3 * 0.95em * var(--line-height));
    line-height:inherit;
    font-size:var(--font-size-ui-s);
}
.file-list-item-time{
    font-size:var(--font-size-ui-s);
}
.file-library-file-node:not(.active):hover{
    color:var(--sidebar-hover-color);
}
.file-library-file-node:not(.active):hover > .file-node-background{
    background:var(--sidebar-hover-background);
}
.file-library-node:not(.file-node-root):focus > .file-node-content{
    outline:unset;
}
.file-node-content{
    padding-right:0;
}
.file-node-content:hover{
    cursor:pointer;
}
.active .file-node-content::after{
    right:14px;
}
.file-node-icon{
    margin-right:5px;
}
.file-node-title{
    width:calc(var(--sidebar-width) - 40px);
    overflow:hidden;
    text-overflow:ellipsis;
}
.file-node-children .file-node-title{
    width:calc(var(--sidebar-width) - 80px);
}
.file-node-children .file-node-children .file-node-title{
    width:calc(var(--sidebar-width) - 88px);
}
.file-node-children .file-node-children .file-node-children .file-node-title{
    width:calc(var(--sidebar-width) - 96px);
}
.allow-file-tree-scroll .file-node-title{
    overflow-x:hidden;
}
.file-tree-node{
    position:relative;
}
.file-tree-node.active > .file-node-background{
    border:0;
}
.file-tree-node.active > .file-node-background{
    background-color:var(--sidebar-active-background);
}
.file-tree-node.active > .file-node-content{
    color:var(--sidebar-active-color);
}
.file-node-background{
    top:0;
    bottom:0;
    right:-4px;
    left:-100px;
    height:auto;
    width:auto;
}
#sidebar-search-btn,
#ty-sidebar-search-back-btn{
    display:flex;
    justify-content:center;
    align-items:center;
    margin:0;
}
#ty-sidebar-search-tabs .searchpanel-search-option-btn{
    top:1em;
    padding:3px 1px;
    background:var(--btn-toggle-background);
    color:var(--btn-toggle-color);
    opacity:1;
}
#ty-sidebar-search-tabs .searchpanel-search-option-btn:hover{
    background:var(--btn-toggle-hover-background);
    color:var(--btn-toggle-hover-color);
}
#ty-sidebar-search-tabs .searchpanel-search-option-btn.select{
    background:var(--btn-toggle-active-background);
    color:var(--btn-toggle-active-color);
}
#filesearch-case-option-btn{
    transform:translateX(-8px);
}
#filesearch-word-option-btn{
    transform:translateX(-4px);
}
.ty-show-outline-filter #file-library-search,
.ty-show-search #file-library-search{
    height:calc(2em + 32px);
}
#file-library-search-input{
    height:auto;
    padding:0.5em 0.75em;
    border:1px solid currentColor;
    border-color:var(--sidebar-border-color);
    border-radius:var(--border-radius-s);
    background:transparent;
    color:inherit;
}
#file-library-search-input:not(:placeholder-shown),
#file-library-search-input:focus{
    border-color:var(--input-focus-color);
    background:var(--input-background);
    color:var(--input-color);
}
.ty-search-item{
    border-bottom:var(--sidebar-border-width) solid var(--sidebar-border-color);
}
.file-list-item-count{
    --size:1.65em;

    height:var(--size);
    min-width:var(--size);
    border-radius:50%;
    background-color:var(--color-status);
    color:var(--color-status-content);
    font-size:var(--font-size-ui-s);
    font-weight:var(--strong-font-weight);
    line-height:var(--size);
    text-align:center;
}
#sidebar-files-menu{
    border-color:var(--border-color);
    background:var(--menu-background);
}
#ty-sidebar-footer{
    border-color:var(--sidebar-border-color);
}
#sidebar-files-menu > .show + .menuitem-group-label.show{
    border-color:var(--border-color);
}
.sidebar-footer-item:hover{
    background:var(--sidebar-hover-background);
    color:var(--sidebar-hover-color);
}
#sidebar-files-menu .folder-menu-item i{
    margin-right:6px;
}
.menuitem-group-label.not-empty-menu-group{
    display:flex !important;
    align-items:center;
    justify-content:space-between;
}
.menuitem-group-label.not-empty-menu-group > .clearfix{
    display:none;
}
#sidebar-files-menu .selected-folder-menu-item a::after{
    content:"";
    position:absolute;
    top:calc(50% - 4px);
    right:8px;
    width:8px;
    height:8px;
    border-radius:50%;
    background:var(--color-primary);
}
#sidebar-files-menu .ty-side-sort-btn{
    --size:24px;

    width:var(--size);
    height:var(--size);
    margin-top:6px;
    margin-bottom:6px;
    border-radius:var(--border-radius-s);
    background:var(--btn-toggle-background);
    color:var(--btn-toggle-color);
    font-size:13px;
    line-height:var(--size);
    opacity:1;
}
#sidebar-files-menu .ty-side-sort-btn:hover{
    background:var(--btn-toggle-hover-background);
    color:var(--btn-toggle-hover-color);
}
#sidebar-files-menu .ty-side-sort-btn.active{
    background:var(--btn-toggle-active-background);
    color:var(--btn-toggle-active-color);
}
#toc-dropmenu{
    right:0;
    border-width:var(--sidebar-border-width) 0 var(--sidebar-border-width) var(--sidebar-border-width);
    border-color:var(--sidebar-border-color);
    border-radius:var(--border-radius) 0 0 var(--border-radius);
    background:var(--sidebar-background);
    color:var(--sidebar-color);
    box-shadow:none;
    filter:var(--drop-shadow);
}
#toc-dropmenu.open{
    animation:toc-in-from-right .3s ease-in;
}
#toc-dropmenu .btn{
    color:inherit;
}
#toc-dropmenu .divider{
    margin:5px 0;
    border-top:var(--sidebar-border-width) solid var(--sidebar-border-color);
    opacity:1;
}
#toc-dropmenu .outline-title-wrapper{
    display:flex;
    justify-content:space-between;
    align-items:center;
}
@keyframes toc-in-from-right{
    0%{
        opacity:0;
        transform:translateX(20%)
    }

    100%{
        opacity:1;
        transform:translateX(0)
    }
}
button.btn .ty-icon{
    font-size:13px;
}
.footnotes{
    opacity:1;
    font-size:var(--font-size-s);
}
.md-p{
    z-index:0;
}
.md-footnote{
    z-index:-1;
}
sup.md-footnote{
    padding:0.1em 0.25em 0.2em 0.25em;
    border-radius:var(--border-radius-s);
    background:var(--code-inline-background);
    color:var(--code-inline-color);
    line-height:1;
}
.md-def-name::before, .md-def-name::after, .md-def-title::before, .md-def-title::after, .md-link .md-meta.md-before, .md-link .md-meta.md-after{
    color:var(--md-brackets);
}
.md-footnote .md-meta.md-before,
.md-link .md-meta.md-before{
    margin-right:0.15em;
}
.md-footnote .md-meta.md-after,
.md-link .md-meta.md-before ~ .md-meta.md-before,
.md-link .md-meta.md-after{
    margin-left:0.15em;
}
.md-def-name{
    font-weight:var(--strong-font-weight);
    color:var(--strong-color);
}
.md-br,
.md-br-content,
.md-comment{
    opacity:1;
    color:var(--md-tags);
}
.md-hr{
    margin:3rem 0;
}
.md-image > .md-meta{
    color:inherit;
    font-family:var(--font-family-ui);
}
.md-image > .md-meta::before, .md-raw-inline:not(.md-br-content){
    opacity:1 !important;
    color:var(--md-tags-expanded);
}
.md-url,
.md-def-url{
    color:var(--link-color);
}
:is(h1, h2, h3, h4, h5, h6){
    margin-top:1.5rem;
    margin-bottom:1rem;
    color:var(--heading-color);
    font-weight:var(--heading-font-weight);
}
:is(h1, h2, h3, h4, h5, h6).md-heading::before{
    all:unset;
    position:absolute;
    top:50%;
    right:calc(100% + 0.5em);
    transform:translate(0, -50%);
    font-size:0.75rem;
    letter-spacing:normal;
    color:var(--md-brackets);
    opacity:0;
    transition:all 0.2s 0s;
}
:is(h1, h2, h3, h4, h5, h6).md-focus::before{
    transform:translate(-0.5em, -50%);
    opacity:1;
}
h1{
    margin-top:3rem;
    font-size:var(--h1-font-size);
    line-height:1.1;
    letter-spacing:var(--h1-letter-spacing);
}
h1.md-heading::before{
    content:'H1';
}
h2{
    margin-top:2rem;
    font-size:var(--h2-font-size);
    line-height:1.2;
    letter-spacing:var(--h2-letter-spacing);
}
h2.md-heading::before{
    content:'H2';
}
h3{
    font-size:var(--h3-font-size);
    line-height:1.3;
    letter-spacing:var(--h3-letter-spacing);
}
h3.md-heading::before{
    content:'H3';
}
h4{
    font-size:var(--h4-font-size);
}
h4.md-heading::before{
    content:'H4';
}
h5{
    font-size:var(--h5-font-size);
}
h5.md-heading::before{
    content:'H5';
}
h6{
    font-size:var(--h6-font-size);
}
h6.md-heading::before{
    content:'H6';
}
h6 ~ :not(h1, h2, h3, h4, h5, h6){
    font-size:var(--h6-font-size);
}
h6 ~ :is(h1, h2, h3, h4, h5, h6) ~ *:not(h1, h2, h3, h4, h5, h6){
    font-size:inherit;
}
ol,
ul{
    padding-left:1.5rem;
}
ol{
    margin-left:0.25rem;
    list-style-type:decimal;
}
ul{
    list-style-type:disc;
}
:is(ol, ul) :is(ol, ul){
    margin-top:0.75rem;
    margin-bottom:0.75rem;
}
ol > li::marker{
    color:var(--counter-color);
}
ul > li::marker{
    color:var(--marker-color);
}
#write li.task-list-item{
    padding-left:0.75em;
}
input[checked] + *{
    opacity:0.6;
    text-decoration:line-through;
}
#write input[type=checkbox],
li.task-list-item > input[type=checkbox]{
    appearance:none;
    width:var(--checkbox-size);
    height:var(--checkbox-size);
    padding:0;
    border:1px solid var(--checkbox-border-color);
    border-radius:var(--checkbox-border-radius);
    background:var(--checkbox-background);
}
#write input[type=checkbox][checked]{
    border-color:var(--color-primary);
    background:var(--color-primary);
}
#write input[type=checkbox][checked]::after{
    content:'';
    position:absolute;
    left:50%;
    top:calc(50% - 0.05em);
    height:calc(var(--checkbox-size) * 0.52);
    width:calc(var(--checkbox-size) * 0.3125);
    border-width:0 2px 2px 0;
    border-color:var(--checkbox-check-color);
    transform:translate(-50%, -50%) rotate(40deg);
}
li.task-list-item > input[type=checkbox]{
    top:calc(((1em * var(--line-height)) / 2) - (var(--checkbox-size) / 2));
    left:calc(0px - var(--checkbox-size));
    margin:0;
}
#write pre.md-meta-block:first-child{
    position:relative;
    overflow:visible;
    margin-bottom:2.5rem;
    padding:var(--code-padding-tb) var(--code-padding-lr);
    border-radius:var(--border-radius);
    background:var(--code-background);
    color:var(--code-text-color);
    font-size:var(--font-size-mono);
    font-weight:var(--font-weight-mono);
}
#write pre.md-meta-block:first-child::after{
    content:'YAML Front Matter';
    position:absolute;
    z-index:1;
    inset:auto var(--code-padding-lr) 100% auto;
    padding:0 1em;
    border-radius:var(--border-radius-s);
    background:var(--code-language-background);
    color:var(--code-language-color);
    font-size:var(--font-size-s);
    line-height:calc(var(--font-size-mono) * var(--line-height));
    transform:translateY(50%);
}
#write pre.md-meta-block:first-child:empty{
    line-height:1.15;
}
#write pre.md-meta-block:first-child:empty::before{
    content:'Insert YAML front matter here...';
    color:var(--code-comment-color);
}
[md-inline="code"]{
    padding:0.1em 0.35em;
    border-radius:var(--border-radius-s);
    background:var(--code-inline-background);
    color:var(--code-inline-color);
}
.md-fences{
    margin:2rem 0;
    background:none;
}
#typora-source .CodeMirror-lines{
    max-width:var(--max-width);
}
#typora-source .CodeMirror-line,
#write .CodeMirror{
    font-family:var(--font-family-mono);
    font-size:var(--font-size-mono);
    font-weight:var(--font-weight-mono);
    color:var(--code-text-color) !important;
}
#write .cm-s-inner,
#write .CodeMirror-scroll,
.md-rawblock-container{
    border-radius:var(--border-radius);
}
#write .cm-s-inner{
    overflow:hidden;
    background:var(--code-background);
}
#write .CodeMirror-lines{
    padding:var(--code-padding-tb) var(--code-padding-lr);
}
#write .CodeMirror-gutters{
    border-color:var(--code-gutter-border-color);
    background:var(--code-background);
}
.CodeMirror-linenumber{
    margin-left:calc(0px - var(--code-padding-lr));
    min-width:2.25em;
}
#write .CodeMirror-scroll{
    cursor:auto;
}
:is(#write, #typora-source) .CodeMirror-cursor{
    border-left:var(--code-cursor-border);
}
:is(#write, #typora-source) .CodeMirror-focused .CodeMirror-activeline:not(:only-child) .CodeMirror-activeline-background{
    border-radius:var(--border-radius-s);
    background:var(--code-activeline-background);
}
:is(#write, #typora-source) .CodeMirror-linenumber{
    color:var(--code-linenumber-color);
}
:is(#write, #typora-source) .CodeMirror-selected:not(.cm-search-hit),
:is(#write, #typora-source) .CodeMirror-selectedtext:not(.cm-search-hit){
    background:var(--code-selected-background) !important;
}
#typora-source .cm-atom{
    color:inherit !important;
}
#write .cm-atom{
    color:var(--code-atom-color) !important;
}
:is(#write, #typora-source) .cm-attribute{
    color:var(--code-attribute-color) !important;
}
:is(#write, #typora-source) .cm-builtin{
    color:var(--code-builtin-color) !important;
}
:is(#write, #typora-source) .cm-comment{
    color:var(--code-comment-color) !important;
    opacity:1 !important;
}
:is(#write, #typora-source) .cm-def{
    color:var(--code-def-color) !important;
}
:is(#write, #typora-source) .cm-error{
    color:var(--code-error-color) !important;
}
#typora-source .cm-header{
    color:var(--heading-color) !important;
}
:is(#write, #typora-source) .cm-keyword{
    color:var(--code-keyword-color) !important;
}
#write .cm-link{
    color:var(--code-link-color) !important;
}
#typora-source .cm-link{
    color:var(--link-color) !important;
}
#write .cm-meta{
    color:var(--code-meta-color) !important;
}
:is(#write, #typora-source) .cm-number{
    color:var(--code-number-color) !important;
}
:is(#write, #typora-source) .cm-operator{
    color:var(--code-operator-color) !important;
}
:is(#write, #typora-source) .cm-property{
    color:var(--code-property-color) !important;
}
:is(#write, #typora-source) .cm-qualifier{
    color:var(--code-qualifier-color) !important;
}
:is(#write, #typora-source) .cm-string{
    color:var(--code-string-color) !important;
}
:is(#write, #typora-source) .cm-string-2{
    color:var(--code-string-2-color) !important;
}
:is(#write, #typora-source) .cm-tag{
    color:var(--code-tag-color) !important;
}
:is(#write, #typora-source) .cm-type{
    color:var(--code-type-color) !important;
}
:is(#write, #typora-source) .cm-s-inner .cm-variable{
    color:var(--code-variable-color) !important;
}
:is(#write, #typora-source) .cm-s-inner .cm-variable-2{
    color:var(--code-variable-2-color) !important;
}
:is(#write, #typora-source) .cm-s-inner .cm-variable-3{
    color:var(--code-variable-3-color) !important;
}
:is(#write, #typora-source) .cm-bracket{
    color:var(--code-bracket-color) !important;
}
#write .md-fences > .code-tooltip,
#write .md-fences > .code-tooltip .ty-cm-lang-input{
    border-radius:var(--border-radius-s);
    font-family:var(--font-family-ui);
    font-size:var(--font-size-s);
    line-height:var(--line-height);
}
#write .md-fences > .code-tooltip{
    bottom:100%;
    right:var(--code-padding-lr);
    z-index:3;
    padding:0;
    border:0;
    color:var(--code-language-color);
    box-shadow:none;
    opacity:1;
    transform:translateY(50%);
}
.md-fences > .code-tooltip .ty-cm-lang-input{
    min-width:17ch;
    margin:0;
    padding:0.15em;
    border:1px solid transparent;
    background:var(--code-language-background);
    line-height:calc(var(--font-size-mono) * var(--line-height));
}
.md-fences > .code-tooltip .ty-cm-lang-input:focus{
    border-color:var(--color-primary);
    background:var(--input-background);
    color:var(--text-color);
}
.md-diagram-panel,
.md-diagram-panel svg,
.md-diagram-panel-preview{
    margin:0;
    padding:0;
}
#write .md-diagram.md-focus .cm-s-inner{
    border-bottom-left-radius:0;
    border-bottom-right-radius:0;
}
#write .md-diagram.md-focus .md-diagram-panel{
    border-bottom-left-radius:var(--border-radius);
    border-bottom-right-radius:var(--border-radius);
    border-width:2px 0 0 0;
    border-color:var(--code-activeline-background);
    background:var(--code-background);
}
.md-diagram-panel-preview svg,
mjx-container svg{
    inset:auto;
    margin:0 auto;
}
.md-fences-adv-panel,
.md-diagram-panel-preview svg text,
.md-diagram-panel-preview svg .label,
.md-diagram-panel-preview svg .nodeLabel{
    font-family:var(--font-family-diagram) !important;
}
.md-diagram-panel-error:not(:empty){
    position:relative;
    margin-top:10px;
    padding:var(--code-padding-tb) var(--code-padding-lr);
    border-radius:var(--border-radius);
    background:var(--code-error-color);
    color:#fff;
    font-size:var(--font-size-s);
    font-weight:calc(var(--font-weight) + 100);
}
.md-diagram-panel-error:not(:empty)::before{
    content:'';
    position:absolute;
    inset:auto auto 100% 50%;
    border-width:11px;
    border-color:transparent;
    border-top-width:0;
    border-bottom-color:var(--code-error-color);
    transform:translateX(-50%);
}
.md-diagram.md-focus .md-diagram-panel-error{
    border-top-left-radius:0;
    border-top-right-radius:0;
}
pre.md-diagram[lang="flow"] .md-diagram-panel-preview{
    padding-bottom:20px;
}
pre.md-diagram[mermaid-type] svg{
    padding-top:5px;
    padding-bottom:12px;
}
pre.md-diagram[mermaid-type="gantt"] svg{
    padding:8px 0 0;
}
pre.md-diagram[mermaid-type="pie"] svg{
    aspect-ratio:16/9;
    padding-top:15px;
}
pre.md-diagram[mermaid-type="sequenceDiagram"] svg{
    padding:13px;
}
pre.md-fences[lang="sequence"] .md-diagram-panel{
    padding:0;
}
.md-math-block.md-focus{
    background:var(--code-background);
}
.md-math-block .code-tooltip{
    box-shadow:none;
}
.md-math-block .md-rawblock-before,
.md-math-block .md-rawblock-after{
    padding:var(--code-padding-tb) var(--code-padding-lr);
}
.md-math-block .md-rawblock-before{
    padding-bottom:0;
}
.md-math-block .md-rawblock-after{
    padding-top:0;
}
.md-math-block .md-math-tag-input{
    position:relative;
    z-index:1;
}
.md-math-block .md-mathjax-preview{
    border-top-width:2px;
    border-color:var(--panel-border-color);
    padding:20px var(--code-padding-lr);
}
.md-rawblock:hover .md-rawblock-container,
.md-rawblock:hover .md-rawblock-tooltip{
    animation:none;
    transition:none;
}
.md-rawblock .md-rawblock-tooltip,
.md-rawblock:hover .md-rawblock-tooltip{
    background:var(--code-language-background);
}
.md-rawblock-tooltip,
.md-rawblock-tooltip-btn,
.md-rawblock-tooltip-name{
    margin:0;
    padding:0;
    color:var(--code-language-color);
    font-family:var(--font-family-ui);
    font-size:var(--font-size-s);
    line-height:calc(var(--font-size-mono) * var(--line-height));
    opacity:1;
}
.md-rawblock:hover .md-rawblock-container{
    background:var(--code-background);
    color:var(--code-text-color);
}
.md-rawblock .md-rawblock-control:not(.md-rawblock-tooltip){
    background:none;
}
.md-rawblock .md-rawblock-input{
    padding:0;
}
.md-rawblock .md-rawblock-tooltip{
    inset:auto 1rem auto auto;
    z-index:4;
    height:auto;
    padding:0 1rem;
    border-radius:var(--border-radius-s);
    transform:translateY(-50%);
}
.md-rawblock-tooltip-name ~ .md-rawblock-tooltip-btn{
    width:auto;
    margin-left:0.25em;
}
figure.md-table-fig{
    margin:2rem 0 2rem 0;
}
thead{
    border-width:var(--thead-border-width, 0);
    border-color:var(--thead-border-color);
}
tbody{
    border-width:var(--tbody-border-width, 0);
    border-color:var(--tbody-border-color);
}
tbody tr{
    border-width:var(--tr-border-width, 0);
    border-color:var(--tr-border-color);
}
tbody tr:nth-child(even){
    background:var(--tr-alt-background);
}
th{
    padding:var(--th-padding);
    border-width:var(--th-border-width, 0);
    border-color:var(--th-border-color);
    font-weight:var(--th-font-weight);
    color:var(--th-color);
}
td{
    padding:var(--td-padding);
    border-width:var(--td-border-width, 0);
    border-color:var(--td-border-color);
}
.md-table-edit{
    z-index:1;
    transform:translate(0, -0.30rem);
    padding:0 5px;
    border-radius:var(--border-radius);
    background:var(--table-edit-background);
}
.md-table-edit{
    display:flex !important;
    align-items:center;
    justify-content:space-between;
}
.md-table-edit .right-th-button{
    float:none;
}
.md-table-edit > span.right-th-button{
    margin-left:auto;
}
.md-table-edit > span.right-th-button ~ .right-th-button{
    margin-left:0;
}
.md-table-edit > span[class] button[class].btn{
    margin:0;
    padding:3px 8px 3px 8px;
    border:0;
    border-radius:0;
    background:var(--table-edit-background);
    color:var(--table-edit-color);
    font-size:inherit;
    line-height:1.4;
}
.md-table-edit > span[class] button[class]:hover{
    background:var(--table-edit-hover-background);
    color:var(--table-edit-hover-color);
}
.md-table-edit > span[class] button[class].active,
.md-table-edit button.active .ty-icon{
    background:var(--table-edit-active-background);
    color:var(--table-edit-active-color);
    box-shadow:none;
}
.md-table-edit .md-table-more{
    display:inline-block;
}
.md-table-edit .md-table-more .ty-icon{
    margin:0 3px !important;
}
.md-table-edit .md-table-more-label{
    display:none !important;
}
.md-table-resize-popover[class]{
    width:auto;
    transform:translate(10px, 2px);
    padding:0;
    border:0;
    background:var(--background-color);
    box-shadow:none;
    filter:var(--drop-shadow);
}
.md-table-resize-popover[class] .arrow,
.md-table-resize-popover[class] .arrow::after{
    border-bottom-color:var(--background-color);
}
.md-grid-board-wrap{
    padding:1rem;
    border-radius:var(--border-radius);
    background:var(--background-color);
}
table.md-grid-board{
    margin:auto;
    border-spacing:3px;
}
table.md-grid-board td{
    overflow:hidden;
    border-radius:2px;
}
table.md-grid-board a{
    border-color:var(--border-color);
    background:var(--input-background);
}
table.md-grid-board .md-grid-ext,
table.md-grid-board .md-grid-ext a{
    border-color:var(--table-edit-active-background);
    background:var(--table-edit-active-background);
}
table.md-grid-board:hover .md-grid-ext,
table.md-grid-board:hover .md-grid-ext a{
    border-color:var(--table-edit-hover-background);
    background:var(--table-edit-hover-background);
}
table.md-grid-board:hover a:hover,
table.md-grid-board:hover a.md-active{
    background:var(--color-primary);
    border-color:var(--color-primary);
}
.md-grid-board-wrap #md-grid-width,
.md-grid-board-wrap #md-grid-height{
    margin:0 0.2rem;
    border-color:var(--border-color);
    border-radius:2px;
    background:var(--input-background);
    line-height:1.6;
    text-align:center;
}
.md-grid-board-wrap .popover-title{
    margin:0.5rem 0 0 0;
    padding:0;
    border:0;
}
.md-grid-board-wrap .popover-title button{
    display:none !important;
}
#table-menu{
    width:30ch;
}
.md-toc{
    margin:2rem 0;
    font-size:var(--font-size-m);
    line-height:var(--line-height);
}
.md-toc-content{
    padding:0;
    margin:0;
}
.md-toc:focus .md-toc-content{
    border:unset;
    margin:0;
}
.md-toc-h1 .md-toc-inner{
    margin-left:0;
    font-weight:var(--strong-font-weight);
}
.md-toc-h2 .md-toc-inner{
    margin-left:1em;
}
.md-toc-h3 .md-toc-inner{
    margin-left:2em;
}
.md-toc-h4 .md-toc-inner{
    margin-left:3em;
}
.md-toc-h5 .md-toc-inner{
    margin-left:4em;
}
.md-toc-h6 .md-toc-inner{
    margin-left:5em;
}
#write div.md-toc-tooltip{
    inset:auto auto 100% -10px;
    width:calc(100% + 20px);
    padding:0 8px;
    border:0;
    border-radius:var(--border-radius);
    background:var(--table-edit-background);
    font-size:var(--font-size-s);
    line-height:calc(var(--font-size-m) * var(--line-height));
}
.md-toc.md-focus .md-toc-tooltip,
.md-toc:focus .md-toc-tooltip{
    display:flex !important;
    align-items:center;
    justify-content:space-between;
}
.megamenu-opened #w-traffic-lights{
    background:var(--mono-50);
    border-bottom-left-radius:var(--border-radius);
    overflow:hidden;
}
.paint-border .megamenu-content{
    border-color:var(--sidebar-border-color);
}
.megamenu-menu,
.megamenu-opened .megamenu-menu{
    transition:.2s;
}
.megamenu-menu{
    border-right:var(--sidebar-border-width) solid var(--sidebar-border-color);
    box-shadow:none;
    background:var(--sidebar-background);
    color:var(--sidebar-color);
}
.megamenu-menu-header{
    border-bottom:var(--sidebar-border-width) solid var(--sidebar-border-color);
}
#megamenu-menu-header-title{
    font-size:var(--font-size-ui-l);
    color:inherit !important;
}
#megamenu-back-btn{
    border-color:transparent;
    color:var(--mono-300);
    font-size:min(16px, calc(var(--font-size-ui-l) * 0.85));
}
.megamenu-menu-header:is(:focus, :hover){
    color:inherit;
}
.megamenu-menu-header:is(:focus,:hover) #megamenu-back-btn{
    color:var(--color-primary);
}
.megamenu-menu-list{
    background-color:transparent;
    border:0;
    border-radius:none;
}
.megamenu-menu-list.dropdown-menu .divider{
    background-color:var(--sidebar-border-color);
    opacity:1;
}
.megamenu-menu-list #m-saved .fa{
    font-size:1em;
}
.megamenu-menu-list #m-saved .fa::before{
    content:"\f00c";
    color:var(--color-primary);
}
.megamenu-menu-list:not(.saved) li a:hover{
    background-color:transparent;
}
.megamenu-menu-list li{
    font-size:var(--font-size-ui);
}
.megamenu-menu-list li a.active,
.megamenu-menu-list:not(.saved) li a:hover{
    background-color:var(--item-hover-bg-color);
    color:var(--item-hover-text-color)
}
.megamenu-opened header{
    background:none !important;
}
.megamenu-content{
    background:transparent;
}
.megamenu-opened > content{
    opacity:0.2;
    filter:blur(10px);
}
#m-import-local:hover .preference-item-hint{
}
.megamenu-menu-panel h1,
.megamenu-menu-panel h2{
    line-height:1;
    font-weight:var(--strong-font-weight);
}
.megamenu-menu-panel h1{
    font-size:var(--font-size-ui-xl);
}
.megamenu-menu-panel h2{
    font-size:var(--font-size-ui-l);
}
.long-btn,
.megamenu-menu-panel .btn,
#recent-file-panel-action-btn{
    background:var(--mono-100);
    border:1px solid var(--mono-300);
}
.long-btn:hover,
.megamenu-menu-panel .btn:hover,
#recent-file-panel-action-btn:hover{
    background-color:var(--item-hover-bg-color);
    color:var(--item-hover-text-color) !important;
}
.long-btn{
    padding:0.75em 1em;
    border-radius:var(--border-radius);
    font-size:inherit;
}
.megamenu-menu-panel table,
.megamenu-menu-panel table :is(thead, tbody, tr, th, td){
    border-style:solid;
}
.megamenu-menu-panel table{
    font-size:inherit !important;
    font-weight:inherit;
    letter-spacing:inherit;
    line-height:inherit;
}
.megamenu-menu-panel table thead{
    border-width:var(--thead-border-width, 0);
    border-color:var(--thead-border-color);
}
.megamenu-menu-panel table tbody{
    border-width:var(--tbody-border-width, 0);
    border-color:var(--tbody-border-color);
}
.megamenu-menu-panel table tbody tr{
    border-width:var(--tr-border-width, 0);
    border-color:var(--tr-border-color);
    background:transparent !important;
}
.megamenu-menu-panel table tbody tr:nth-child(even){
    background:var(--tr-alt-background) !important;
}
.megamenu-menu-panel table tr th{
    padding:var(--th-padding);
    border-width:var(--th-border-width, 0);
    border-color:var(--th-border-color);
    font-weight:var(--th-font-weight);
    color:var(--th-color)
}
.megamenu-menu-panel table tr td{
    padding:var(--td-padding);
    border-width:var(--td-border-width, 0);
    border-color:var(--td-border-color);
}
#recent-file-panel{
    font-size:inherit;
}
#recent-document-table{
    margin-top:1.5em !important;
}
@media (max-width: 530px){
    .megamenu-menu-header #megamenu-menu-header-title{
        display:none;
    }

    .megamenu-menu-list li a{
        font-size:24px;
    }

    .megamenu-menu-list li a.active{
        background-color:var(--item-hover-bg-color);
        color:inherit;
    }
}
.error-dialog .modal-header{
}
.modal-open .modal.fade.in{
}
.megamenu-opened.modal-open .modal.fade.in{
}
#about-content-license-button{
    border-radius:var(--border-radius);
    font-size:inherit;
}
.about-content-slogon{
    font-family:var(--font-family);
    letter-spacing:normal;
    color:var(--color-secondary);
}
.about-content-hint{
    font-size:inherit;
}
.about-content-meta{
    font-size:inherit;
    font-family:var(--font-family-mono);
}
.theme-preview-content{
    border-radius:var(--border-radius);
    border:none
}
.theme-preview-div{
    --border-width:4px;

    border:var(--border-width) solid var(--mono-200);
    color:var(--side-bar-menu-active-tint);
    border-radius:calc(var(--border-radius) + var(--border-width));
}
.theme-preview-div:hover{
    border-color:var(--color-primary);
}
.theme-preview-div.active,
.theme-preview-div.active:hover{
    border-color:var(--color-primary);
}
.theme-preview-div .fa{
    bottom:8px;
    left:auto;
    right:8px;
    padding:0.25em;
    border-radius:50%;
    background:var(--color-primary);
    color:#fff;
    font-size:125%;
}
.theme-preview-div .fa::before{
    content:"\f00c";
}

/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIjxubyBzb3VyY2U+IiwiLi4vc3JjL2NvcmUvdmFycy1wYWxldHRlLmNzcyIsIi4uL3NyYy9jb3JlL3ZhcnMtdGhlbWUuY3NzIiwiLi4vc3JjL2NvcmUvdmFycy10eXBvcmEuY3NzIiwiLi4vc3JjL2NvcmUvYmFzZS5jc3MiLCIuLi9zcmMvY29yZS9hcHAuY3NzIiwiLi4vc3JjL2NvcmUvcXVpY2stb3Blbi5jc3MiLCIuLi9zcmMvY29yZS9zZWFyY2hiYXIuY3NzIiwiLi4vc3JjL2NvcmUvc2lkZWJhci5jc3MiLCIuLi9zcmMvY29yZS9vdXRsaW5lLXBvcG92ZXIuY3NzIiwiLi4vc3JjL2NvcmUvbWFya2Rvd24uY3NzIiwiLi4vc3JjL2NvcmUvaGVhZGluZ3MuY3NzIiwiLi4vc3JjL2NvcmUvbGlzdHMuY3NzIiwiLi4vc3JjL2NvcmUvY29kZS5jc3MiLCIuLi9zcmMvY29yZS90YWJsZXMuY3NzIiwiLi4vc3JjL2NvcmUvdG9jLmNzcyIsIi4uL3NyYy9jb3JlL21lZ2FtZW51LmNzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7O0dBQUE7QUNJQTtJQUNJLGdCQUFrQjtJQUNsQixpQkFBa0I7SUFDbEIsaUJBQWtCO0lBQ2xCLGlCQUFrQjtJQUNsQixpQkFBa0I7SUFDbEIsaUJBQWtCO0lBQ2xCLGlCQUFrQjtJQUNsQixpQkFBa0I7SUFDbEIsaUJBQWtCO0lBQ2xCLGlCQUFrQjs7SUFFbEIsbUJBQXFCO0lBQ3JCLG9CQUFxQjtJQUNyQixvQkFBcUI7SUFDckIsb0JBQXFCO0lBQ3JCLG9CQUFxQjtJQUNyQixvQkFBcUI7SUFDckIsb0JBQXFCO0lBQ3JCLG9CQUFxQjtJQUNyQixvQkFBcUI7SUFDckIsb0JBQXFCOztJQUVyQixrQkFBb0I7SUFDcEIsbUJBQW9CO0lBQ3BCLG1CQUFvQjtJQUNwQixtQkFBb0I7SUFDcEIsbUJBQW9CO0lBQ3BCLG1CQUFvQjtJQUNwQixtQkFBb0I7SUFDcEIsbUJBQW9CO0lBQ3BCLG1CQUFvQjtJQUNwQixtQkFBb0I7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SUFFSSxpQkFBa0I7SUFDbEIsbUNBQW9DO0FBQ3hDO0FBSUE7SUFDSSxrQ0FBbUM7SUFDbkM7QUFDSjtBQUVBO0lBQ0ksa0JBQW1COztJQUVuQixnREFBaUQ7SUFDakQsc0NBQXVDO0lBQ3ZDLDhEQUErRDtBQUNuRTtBQUVBO0lBQ0ksaUNBQWtDO0FBQ3RDO0FBRUE7O0lBRUksaUNBQWtDO0FBQ3RDO0FBRUE7SUFDSSxVQUFXO0lBQ1gsU0FBVTtJQUNWLFNBQVU7SUFDVixjQUFlO0lBQ2YsaUJBQWtCO0lBQ2xCLCtCQUFnQztJQUNoQyxVQUFXO0lBQ1gsY0FBZTtBQUNuQjtBQUVBO0lBQ0ksZUFBZ0I7QUFDcEIiLCJmaWxlIjoidGhlbWVhYmxlLWxpZ2h0LmNzcyIsInNvdXJjZXNDb250ZW50IjpbbnVsbCwiLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLyogVGhlbWVhYmxlIC0gQ29sb3IgUGFsZXR0ZVxuLyogQ3JlZGl0OiBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL2N1c3RvbWl6aW5nLWNvbG9yc1xuLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuOnJvb3Qge1xuICAgIC0tcmVkLTUwIDogI2ZlZjJmMjtcbiAgICAtLXJlZC0xMDA6ICNmZWUyZTI7XG4gICAgLS1yZWQtMjAwOiAjZmVjYWNhO1xuICAgIC0tcmVkLTMwMDogI2ZjYTVhNTtcbiAgICAtLXJlZC00MDA6ICNmODcxNzE7XG4gICAgLS1yZWQtNTAwOiAjZWY0NDQ0O1xuICAgIC0tcmVkLTYwMDogI2RjMjYyNjtcbiAgICAtLXJlZC03MDA6ICNiOTFjMWM7XG4gICAgLS1yZWQtODAwOiAjOTkxYjFiO1xuICAgIC0tcmVkLTkwMDogIzdmMWQxZDtcblxuICAgIC0tb3JhbmdlLTUwIDogI2ZmZjdlZDtcbiAgICAtLW9yYW5nZS0xMDA6ICNmZmVkZDU7XG4gICAgLS1vcmFuZ2UtMjAwOiAjZmVkN2FhO1xuICAgIC0tb3JhbmdlLTMwMDogI2ZkYmE3NDtcbiAgICAtLW9yYW5nZS00MDA6ICNmYjkyM2M7XG4gICAgLS1vcmFuZ2UtNTAwOiAjZjk3MzE2O1xuICAgIC0tb3JhbmdlLTYwMDogI2VhNTgwYztcbiAgICAtLW9yYW5nZS03MDA6ICNjMjQxMGM7XG4gICAgLS1vcmFuZ2UtODAwOiAjOWEzNDEyO1xuICAgIC0tb3JhbmdlLTkwMDogIzdjMmQxMjtcblxuICAgIC0tYW1iZXItNTAgOiAjZmZmYmViO1xuICAgIC0tYW1iZXItMTAwOiAjZmVmM2M3O1xuICAgIC0tYW1iZXItMjAwOiAjZmRlNjhhO1xuICAgIC0tYW1iZXItMzAwOiAjZmNkMzRkO1xuICAgIC0tYW1iZXItNDAwOiAjZmJiZjI0O1xuICAgIC0tYW1iZXItNTAwOiAjZjU5ZTBiO1xuICAgIC0tYW1iZXItNjAwOiAjZDk3NzA2O1xuICAgIC0tYW1iZXItNzAwOiAjYjQ1MzA5O1xuICAgIC0tYW1iZXItODAwOiAjOTI0MDBlO1xuICAgIC0tYW1iZXItOTAwOiAjNzgzNTBmO1xuXG4gICAgLS15ZWxsb3ctNTAgOiAjZmVmY2U4O1xuICAgIC0teWVsbG93LTEwMDogI2ZlZjljMztcbiAgICAtLXllbGxvdy0yMDA6ICNmZWYwOGE7XG4gICAgLS15ZWxsb3ctMzAwOiAjZmRlMDQ3O1xuICAgIC0teWVsbG93LTQwMDogI2ZhY2MxNTtcbiAgICAtLXllbGxvdy01MDA6ICNlYWIzMDg7XG4gICAgLS15ZWxsb3ctNjAwOiAjY2E4YTA0O1xuICAgIC0teWVsbG93LTcwMDogI2ExNjIwNztcbiAgICAtLXllbGxvdy04MDA6ICM4NTRkMGU7XG4gICAgLS15ZWxsb3ctOTAwOiAjNzEzZjEyO1xuXG4gICAgLS1saW1lLTUwIDogI2Y3ZmVlNztcbiAgICAtLWxpbWUtMTAwOiAjZWNmY2NiO1xuICAgIC0tbGltZS0yMDA6ICNkOWY5OWQ7XG4gICAgLS1saW1lLTMwMDogI2JlZjI2NDtcbiAgICAtLWxpbWUtNDAwOiAjYTNlNjM1O1xuICAgIC0tbGltZS01MDA6ICM4NGNjMTY7XG4gICAgLS1saW1lLTYwMDogIzY1YTMwZDtcbiAgICAtLWxpbWUtNzAwOiAjNGQ3YzBmO1xuICAgIC0tbGltZS04MDA6ICMzZjYyMTI7XG4gICAgLS1saW1lLTkwMDogIzM2NTMxNDtcblxuICAgIC0tZ3JlZW4tNTAgOiAjZjBmZGY0O1xuICAgIC0tZ3JlZW4tMTAwOiAjZGNmY2U3O1xuICAgIC0tZ3JlZW4tMjAwOiAjYmJmN2QwO1xuICAgIC0tZ3JlZW4tMzAwOiAjODZlZmFjO1xuICAgIC0tZ3JlZW4tNDAwOiAjNGFkZTgwO1xuICAgIC0tZ3JlZW4tNTAwOiAjMjJjNTVlO1xuICAgIC0tZ3JlZW4tNjAwOiAjMTZhMzRhO1xuICAgIC0tZ3JlZW4tNzAwOiAjMTU4MDNkO1xuICAgIC0tZ3JlZW4tODAwOiAjMTY2NTM0O1xuICAgIC0tZ3JlZW4tOTAwOiAjMTQ1MzJkO1xuXG4gICAgLS1lbWVyYWxkLTUwIDogI2VjZmRmNTtcbiAgICAtLWVtZXJhbGQtMTAwOiAjZDFmYWU1O1xuICAgIC0tZW1lcmFsZC0yMDA6ICNhN2YzZDA7XG4gICAgLS1lbWVyYWxkLTMwMDogIzZlZTdiNztcbiAgICAtLWVtZXJhbGQtNDAwOiAjMzRkMzk5O1xuICAgIC0tZW1lcmFsZC01MDA6ICMxMGI5ODE7XG4gICAgLS1lbWVyYWxkLTYwMDogIzA1OTY2OTtcbiAgICAtLWVtZXJhbGQtNzAwOiAjMDQ3ODU3O1xuICAgIC0tZW1lcmFsZC04MDA6ICMwNjVmNDY7XG4gICAgLS1lbWVyYWxkLTkwMDogIzA2NGUzYjtcblxuICAgIC0tdGVhbC01MCA6ICNmMGZkZmE7XG4gICAgLS10ZWFsLTEwMDogI2NjZmJmMTtcbiAgICAtLXRlYWwtMjAwOiAjOTlmNmU0O1xuICAgIC0tdGVhbC0zMDA6ICM1ZWVhZDQ7XG4gICAgLS10ZWFsLTQwMDogIzJkZDRiZjtcbiAgICAtLXRlYWwtNTAwOiAjMTRiOGE2O1xuICAgIC0tdGVhbC02MDA6ICMwZDk0ODg7XG4gICAgLS10ZWFsLTcwMDogIzBmNzY2ZTtcbiAgICAtLXRlYWwtODAwOiAjMTE1ZTU5O1xuICAgIC0tdGVhbC05MDA6ICMxMzRlNGE7XG5cbiAgICAtLWN5YW4tNTAgOiAjZWNmZWZmO1xuICAgIC0tY3lhbi0xMDA6ICNjZmZhZmU7XG4gICAgLS1jeWFuLTIwMDogI2E1ZjNmYztcbiAgICAtLWN5YW4tMzAwOiAjNjdlOGY5O1xuICAgIC0tY3lhbi00MDA6ICMyMmQzZWU7XG4gICAgLS1jeWFuLTUwMDogIzA2YjZkNDtcbiAgICAtLWN5YW4tNjAwOiAjMDg5MWIyO1xuICAgIC0tY3lhbi03MDA6ICMwZTc0OTA7XG4gICAgLS1jeWFuLTgwMDogIzE1NWU3NTtcbiAgICAtLWN5YW4tOTAwOiAjMTY0ZTYzO1xuXG4gICAgLS1za3ktNTAgOiAjZjBmOWZmO1xuICAgIC0tc2t5LTEwMDogI2UwZjJmZTtcbiAgICAtLXNreS0yMDA6ICNiYWU2ZmQ7XG4gICAgLS1za3ktMzAwOiAjN2RkM2ZjO1xuICAgIC0tc2t5LTQwMDogIzM4YmRmODtcbiAgICAtLXNreS01MDA6ICMwZWE1ZTk7XG4gICAgLS1za3ktNjAwOiAjMDI4NGM3O1xuICAgIC0tc2t5LTcwMDogIzAzNjlhMTtcbiAgICAtLXNreS04MDA6ICMwNzU5ODU7XG4gICAgLS1za3ktOTAwOiAjMGM0YTZlO1xuXG4gICAgLS1ibHVlLTUwIDogI2VmZjZmZjtcbiAgICAtLWJsdWUtMTAwOiAjZGJlYWZlO1xuICAgIC0tYmx1ZS0yMDA6ICNiZmRiZmU7XG4gICAgLS1ibHVlLTMwMDogIzkzYzVmZDtcbiAgICAtLWJsdWUtNDAwOiAjNjBhNWZhO1xuICAgIC0tYmx1ZS01MDA6ICMzYjgyZjY7XG4gICAgLS1ibHVlLTYwMDogIzI1NjNlYjtcbiAgICAtLWJsdWUtNzAwOiAjMWQ0ZWQ4O1xuICAgIC0tYmx1ZS04MDA6ICMxZTQwYWY7XG4gICAgLS1ibHVlLTkwMDogIzFlM2E4YTtcblxuICAgIC0taW5kaWdvLTUwIDogI2VlZjJmZjtcbiAgICAtLWluZGlnby0xMDA6ICNlMGU3ZmY7XG4gICAgLS1pbmRpZ28tMjAwOiAjYzdkMmZlO1xuICAgIC0taW5kaWdvLTMwMDogI2E1YjRmYztcbiAgICAtLWluZGlnby00MDA6ICM4MThjZjg7XG4gICAgLS1pbmRpZ28tNTAwOiAjNjM2NmYxO1xuICAgIC0taW5kaWdvLTYwMDogIzRmNDZlNTtcbiAgICAtLWluZGlnby03MDA6ICM0MzM4Y2E7XG4gICAgLS1pbmRpZ28tODAwOiAjMzczMGEzO1xuICAgIC0taW5kaWdvLTkwMDogIzMxMmU4MTtcblxuICAgIC0tdmlvbGV0LTUwIDogI2Y1ZjNmZjtcbiAgICAtLXZpb2xldC0xMDA6ICNlZGU5ZmU7XG4gICAgLS12aW9sZXQtMjAwOiAjZGRkNmZlO1xuICAgIC0tdmlvbGV0LTMwMDogI2M0YjVmZDtcbiAgICAtLXZpb2xldC00MDA6ICNhNzhiZmE7XG4gICAgLS12aW9sZXQtNTAwOiAjOGI1Y2Y2O1xuICAgIC0tdmlvbGV0LTYwMDogIzdjM2FlZDtcbiAgICAtLXZpb2xldC03MDA6ICM2ZDI4ZDk7XG4gICAgLS12aW9sZXQtODAwOiAjNWIyMWI2O1xuICAgIC0tdmlvbGV0LTkwMDogIzRjMWQ5NTtcblxuICAgIC0tcHVycGxlLTUwIDogI2ZhZjVmZjtcbiAgICAtLXB1cnBsZS0xMDA6ICNmM2U4ZmY7XG4gICAgLS1wdXJwbGUtMjAwOiAjZTlkNWZmO1xuICAgIC0tcHVycGxlLTMwMDogI2Q4YjRmZTtcbiAgICAtLXB1cnBsZS00MDA6ICNjMDg0ZmM7XG4gICAgLS1wdXJwbGUtNTAwOiAjYTg1NWY3O1xuICAgIC0tcHVycGxlLTYwMDogIzkzMzNlYTtcbiAgICAtLXB1cnBsZS03MDA6ICM3ZTIyY2U7XG4gICAgLS1wdXJwbGUtODAwOiAjNmIyMWE4O1xuICAgIC0tcHVycGxlLTkwMDogIzU4MWM4NztcblxuICAgIC0tZnVjaHNpYS01MCA6ICNmZGY0ZmY7XG4gICAgLS1mdWNoc2lhLTEwMDogI2ZhZThmZjtcbiAgICAtLWZ1Y2hzaWEtMjAwOiAjZjVkMGZlO1xuICAgIC0tZnVjaHNpYS0zMDA6ICNmMGFiZmM7XG4gICAgLS1mdWNoc2lhLTQwMDogI2U4NzlmOTtcbiAgICAtLWZ1Y2hzaWEtNTAwOiAjZDk0NmVmO1xuICAgIC0tZnVjaHNpYS02MDA6ICNjMDI2ZDM7XG4gICAgLS1mdWNoc2lhLTcwMDogI2EyMWNhZjtcbiAgICAtLWZ1Y2hzaWEtODAwOiAjODYxOThmO1xuICAgIC0tZnVjaHNpYS05MDA6ICM3MDFhNzU7XG5cbiAgICAtLXBpbmstNTAgOiAjZmRmMmY4O1xuICAgIC0tcGluay0xMDA6ICNmY2U3ZjM7XG4gICAgLS1waW5rLTIwMDogI2ZiY2ZlODtcbiAgICAtLXBpbmstMzAwOiAjZjlhOGQ0O1xuICAgIC0tcGluay00MDA6ICNmNDcyYjY7XG4gICAgLS1waW5rLTUwMDogI2VjNDg5OTtcbiAgICAtLXBpbmstNjAwOiAjZGIyNzc3O1xuICAgIC0tcGluay03MDA6ICNiZTE4NWQ7XG4gICAgLS1waW5rLTgwMDogIzlkMTc0ZDtcbiAgICAtLXBpbmstOTAwOiAjODMxODQzO1xuXG4gICAgLS1yb3NlLTUwIDogI2ZmZjFmMjtcbiAgICAtLXJvc2UtMTAwOiAjZmZlNGU2O1xuICAgIC0tcm9zZS0yMDA6ICNmZWNkZDM7XG4gICAgLS1yb3NlLTMwMDogI2ZkYTRhZjtcbiAgICAtLXJvc2UtNDAwOiAjZmI3MTg1O1xuICAgIC0tcm9zZS01MDA6ICNmNDNmNWU7XG4gICAgLS1yb3NlLTYwMDogI2UxMWQ0ODtcbiAgICAtLXJvc2UtNzAwOiAjYmUxMjNjO1xuICAgIC0tcm9zZS04MDA6ICM5ZjEyMzk7XG4gICAgLS1yb3NlLTkwMDogIzg4MTMzNztcblxuICAgIC8qIE1vbm9jaHJvbWUgKGNvb2wgPT4gd2FybSkgKi9cbiAgICAvKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cbiAgICAtLXNsYXRlLTUwIDogI2Y4ZmFmYztcbiAgICAtLXNsYXRlLTEwMDogI2YxZjVmOTtcbiAgICAtLXNsYXRlLTIwMDogI2UyZThmMDtcbiAgICAtLXNsYXRlLTMwMDogI2NiZDVlMTtcbiAgICAtLXNsYXRlLTQwMDogIzk0YTNiODtcbiAgICAtLXNsYXRlLTUwMDogIzY0NzQ4YjtcbiAgICAtLXNsYXRlLTYwMDogIzQ3NTU2OTtcbiAgICAtLXNsYXRlLTcwMDogIzMzNDE1NTtcbiAgICAtLXNsYXRlLTgwMDogIzFlMjkzYjtcbiAgICAtLXNsYXRlLTkwMDogIzBmMTcyYTtcblxuICAgIC0tZ3JheS01MCA6ICNmOWZhZmI7XG4gICAgLS1ncmF5LTEwMDogI2YzZjRmNjtcbiAgICAtLWdyYXktMjAwOiAjZTVlN2ViO1xuICAgIC0tZ3JheS0zMDA6ICNkMWQ1ZGI7XG4gICAgLS1ncmF5LTQwMDogIzljYTNhZjtcbiAgICAtLWdyYXktNTAwOiAjNmI3MjgwO1xuICAgIC0tZ3JheS02MDA6ICM0YjU1NjM7XG4gICAgLS1ncmF5LTcwMDogIzM3NDE1MTtcbiAgICAtLWdyYXktODAwOiAjMWYyOTM3O1xuICAgIC0tZ3JheS05MDA6ICMxMTE4Mjc7XG5cbiAgICAtLXppbmMtNTAgOiAjZmFmYWZhO1xuICAgIC0temluYy0xMDA6ICNmNGY0ZjU7XG4gICAgLS16aW5jLTIwMDogI2U0ZTRlNztcbiAgICAtLXppbmMtMzAwOiAjZDRkNGQ4O1xuICAgIC0temluYy00MDA6ICNhMWExYWE7XG4gICAgLS16aW5jLTUwMDogIzcxNzE3YTtcbiAgICAtLXppbmMtNjAwOiAjNTI1MjViO1xuICAgIC0temluYy03MDA6ICMzZjNmNDY7XG4gICAgLS16aW5jLTgwMDogIzI3MjcyYTtcbiAgICAtLXppbmMtOTAwOiAjMTgxODFiO1xuXG4gICAgLS1uZXV0cmFsLTUwIDogI2ZhZmFmYTtcbiAgICAtLW5ldXRyYWwtMTAwOiAjZjVmNWY1O1xuICAgIC0tbmV1dHJhbC0yMDA6ICNlNWU1ZTU7XG4gICAgLS1uZXV0cmFsLTMwMDogI2Q0ZDRkNDtcbiAgICAtLW5ldXRyYWwtNDAwOiAjYTNhM2EzO1xuICAgIC0tbmV1dHJhbC01MDA6ICM3MzczNzM7XG4gICAgLS1uZXV0cmFsLTYwMDogIzUyNTI1MjtcbiAgICAtLW5ldXRyYWwtNzAwOiAjNDA0MDQwO1xuICAgIC0tbmV1dHJhbC04MDA6ICMyNjI2MjY7XG4gICAgLS1uZXV0cmFsLTkwMDogIzE3MTcxNztcblxuICAgIC0tc3RvbmUtNTAgOiAjZmFmYWY5O1xuICAgIC0tc3RvbmUtMTAwOiAjZjVmNWY0O1xuICAgIC0tc3RvbmUtMjAwOiAjZTdlNWU0O1xuICAgIC0tc3RvbmUtMzAwOiAjZDZkM2QxO1xuICAgIC0tc3RvbmUtNDAwOiAjYThhMjllO1xuICAgIC0tc3RvbmUtNTAwOiAjNzg3MTZjO1xuICAgIC0tc3RvbmUtNjAwOiAjNTc1MzRlO1xuICAgIC0tc3RvbmUtNzAwOiAjNDQ0MDNjO1xuICAgIC0tc3RvbmUtODAwOiAjMjkyNTI0O1xuICAgIC0tc3RvbmUtOTAwOiAjMWMxOTE3O1xufVxuIiwiLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLyogVGhlbWVhYmxlIC0gQ29tbW9uXG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG46cm9vdCB7XG4gICAgLyogQ29sb3JzICovXG4gICAgLyogTmFtZXM6IHJlZCwgb3JhbmdlLCBhbWJlciwgeWVsbG93LCBsaW1lLCBncmVlbiwgZW1lcmFsZCwgKi9cbiAgICAvKiAgICAgICAgdGVhbCwgY3lhbiwgc2t5LGJsdWUsIGluZGlnbywgdmlvbGV0LCBwdXJwbGUsICovXG4gICAgLyogICAgICAgIGZ1Y2hzaWEsIHBpbmssIHJvc2UgKi9cbiAgICAvKiBSYW5nZTogNTAgKGxpZ2h0KSwgMTAwLCAyMDAgLi4uIDkwMCAoZGFyaykgKi9cbiAgICAtLWNvbG9yLXByaW1hcnkgICAgICAgICAgICA6IHZhcigtLXNreS02MDApO1xuICAgIC0tY29sb3Itc2Vjb25kYXJ5ICAgICAgICAgIDogdmFyKC0tdmlvbGV0LTUwMCk7XG4gICAgLS1tYXJrZWQtYmFja2dyb3VuZCAgICAgICAgOiB2YXIoLS15ZWxsb3ctMzAwKTtcbiAgICAtLXNlYXJjaC1tYXRjaC1iYWNrZ3JvdW5kICA6IHZhcigtLXBpbmstMTAwKTtcbiAgICAtLXNlYXJjaC1tYXRjaC1ib3JkZXItY29sb3I6IHZhcigtLXBpbmstNTAwKTtcbiAgICAtLXNlbGVjdGlvbi1iYWNrZ3JvdW5kICAgICA6IHZhcigtLXNreS0xMDApO1xuXG4gICAgLyogTW9ub2Nocm9tZSAqL1xuICAgIC8qIE5hbWVzOiBzbGF0ZSwgZ3JheSwgemluYywgbmV1dHJhbCwgc3RvbmUgKi9cbiAgICAvKiBSYW5nZTogNTAgKGxpZ2h0KSwgMTAwLCAyMDAgLi4uIDkwMCAoZGFyaykgKi9cbiAgICAtLW1vbm8tNTAgOiB2YXIoLS1uZXV0cmFsLTUwKTtcbiAgICAtLW1vbm8tMTAwOiB2YXIoLS1uZXV0cmFsLTEwMCk7XG4gICAgLS1tb25vLTIwMDogdmFyKC0tbmV1dHJhbC0yMDApO1xuICAgIC0tbW9uby0zMDA6IHZhcigtLW5ldXRyYWwtMzAwKTtcbiAgICAtLW1vbm8tNDAwOiB2YXIoLS1uZXV0cmFsLTQwMCk7XG4gICAgLS1tb25vLTUwMDogdmFyKC0tbmV1dHJhbC01MDApO1xuICAgIC0tbW9uby02MDA6IHZhcigtLW5ldXRyYWwtNjAwKTtcbiAgICAtLW1vbm8tNzAwOiB2YXIoLS1uZXV0cmFsLTcwMCk7XG4gICAgLS1tb25vLTgwMDogdmFyKC0tbmV1dHJhbC04MDApO1xuICAgIC0tbW9uby05MDA6IHZhcigtLW5ldXRyYWwtOTAwKTtcblxuICAgIC8qIFR5cG9ncmFwaHkgKi9cbiAgICAtLWZvbnQtZmFtaWx5ICAgICA6IFwiSW50ZXJWYXJpYWJsZVwiLCBcIkludGVyXCIsIHN5c3RlbSwgLWFwcGxlLXN5c3RlbSwgXCIuU0ZOU1RleHQtUmVndWxhclwiLCBcIlNhbiBGcmFuY2lzY29cIiwgXCJTZWdvZSBVSVwiLCBSb2JvdG8sIE94eWdlbi1TYW5zLCBVYnVudHUsIENhbnRhcmVsbCwgXCJIZWx2ZXRpY2EgTmV1ZVwiLCBzYW5zLXNlcmlmO1xuICAgIC0tZm9udC1mYW1pbHktbW9ubzogdWktbW9ub3NwYWNlLCBTRk1vbm8tUmVndWxhciwgTWVubG8sIE1vbmFjbywgQ29uc29sYXMsIFwiTGliZXJhdGlvbiBNb25vXCIsIFwiQ291cmllciBOZXdcIiwgbW9ub3NwYWNlO1xuICAgIC0tZm9udC1zaXplICAgICAgIDogMTZweDtcbiAgICAtLWZvbnQtc2l6ZS1tb25vICA6IDAuOTM3NWVtO1xuICAgIC0tZm9udC1zaXplLXVpICAgIDogMTRweDtcbiAgICAtLWZvbnQtd2VpZ2h0ICAgICA6IDQwMDtcbiAgICAtLWZvbnQtd2VpZ2h0LW1vbm86IDUwMDtcbn1cblxuLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLyogVGhlbWVhYmxlIC0gQWR2YW5jZWRcbi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbjpyb290IHtcbiAgICAvKiBDb2xvcnMgKi9cbiAgICAtLWNvbG9yLWhvdmVyICAgICAgICAgIDogdmFyKC0tbW9uby0yMDApO1xuICAgIC0tY29sb3ItaG92ZXItY29udGVudCAgOiBpbmhlcml0O1xuICAgIC0tY29sb3ItcHJpbWFyeS1jb250ZW50OiAjZmZmO1xuICAgIC0tY29sb3Itc3RhdHVzICAgICAgICAgOiB2YXIoLS1tb25vLTUwMCk7XG4gICAgLS1jb2xvci1zdGF0dXMtY29udGVudCA6ICNmZmY7XG5cbiAgICAvKiBUeXBvZ3JhcGh5ICovXG4gICAgLS1mb250LWZhbWlseS1kaWFncmFtOiB2YXIoLS1mb250LWZhbWlseSk7XG4gICAgLS1mb250LWZhbWlseS11aSAgICAgOiB2YXIoLS1mb250LWZhbWlseSk7XG4gICAgLS1mb250LXNpemUteHhsICAgICAgOiBjYWxjKHZhcigtLWZvbnQtc2l6ZS14bCkgKiB2YXIoLS1tb2R1bGFyLXNjYWxlKSk7IC8qIDQ3cHggKDMzICogMS40MTQpICovXG4gICAgLS1mb250LXNpemUteGwgICAgICAgOiBjYWxjKHZhcigtLWZvbnQtc2l6ZS1sKSAqIHZhcigtLW1vZHVsYXItc2NhbGUpKTsgLyogMzNweCAoMjMgKiAxLjQxNCkgKi9cbiAgICAtLWZvbnQtc2l6ZS1sICAgICAgICA6IGNhbGMoMXJlbSAqIHZhcigtLW1vZHVsYXItc2NhbGUpKTsgLyogMjNweCAoMTYgKiAxLjQxNCkgKi9cbiAgICAtLWZvbnQtc2l6ZS1tICAgICAgICA6IDFyZW07IC8qIDE2cHggKi9cbiAgICAtLWZvbnQtc2l6ZS1zICAgICAgICA6IG1heCgwLjc1cmVtLCBjYWxjKDFyZW0gLyB2YXIoLS1tb2R1bGFyLXNjYWxlKSkpOyAvKiAxMnB4ICgoMTYgKiAwLjc1ID0gMTIpID4gKDE2IC8gMS40MTQgPSAxMSkgKi9cbiAgICAtLWZvbnQtc2l6ZS14cyAgICAgICA6IG1heCgwLjY4NzVyZW0sIGNhbGModmFyKC0tZm9udC1zaXplLXMpIC8gdmFyKC0tbW9kdWxhci1zY2FsZSkpKTsgLyogMTFweCAoKDE2ICogMC42ODc1ID0gMTEpID4gKDEyIC8gMS40MTQgPSA4KSAqL1xuICAgIC0tZm9udC1zaXplLXVpLXhsICAgIDogY2FsYyh2YXIoLS1mb250LXNpemUtdWktbCkgKiB2YXIoLS1tb2R1bGFyLXNjYWxlKSk7IC8qIDI4cHggKi9cbiAgICAtLWZvbnQtc2l6ZS11aS1sICAgICA6IGNhbGModmFyKC0tZm9udC1zaXplLXVpKSAqIHZhcigtLW1vZHVsYXItc2NhbGUpKTsgLyogMjBweCAqL1xuICAgIC0tZm9udC1zaXplLXVpLXMgICAgIDogbWF4KDEycHgsIGNhbGModmFyKC0tZm9udC1zaXplLXVpKSAqIDAuODU3KSk7IC8qIDEycHggKi9cbiAgICAtLWxpbmUtaGVpZ2h0ICAgICAgICA6IDEuNjtcbiAgICAtLW1vZHVsYXItc2NhbGUgICAgICA6IDEuNDE0OyAvKiAxLjA2NywgMS4xMjUsIDEuMjAwLCAxLjI1MCwgMS4zMzMsIDEuNDE0LCAxLjUwMCwgMS42MTggKi9cblxuICAgIC8qIEFwcCAqL1xuICAgIC0tYmFja2dyb3VuZC1jb2xvciAgICAgICAgICAgIDogdmFyKC0tbW9uby01MCk7XG4gICAgLS1ib3JkZXItY29sb3IgICAgICAgICAgICAgICAgOiB2YXIoLS1tb25vLTIwMCk7XG4gICAgLS1ib3JkZXItcmFkaXVzICAgICAgICAgICAgICAgOiA2cHg7XG4gICAgLS1ib3JkZXItcmFkaXVzLXMgICAgICAgICAgICAgOiAzcHg7XG4gICAgLS1ib3JkZXItcmFkaXVzLXhzICAgICAgICAgICAgOiAxcHg7XG4gICAgLS1idG4tdG9nZ2xlLWFjdGl2ZS1iYWNrZ3JvdW5kOiA7XG4gICAgLS1idG4tdG9nZ2xlLWFjdGl2ZS1jb2xvciAgICAgOiB2YXIoLS1jb2xvci1wcmltYXJ5KTtcbiAgICAtLWJ0bi10b2dnbGUtYmFja2dyb3VuZCAgICAgICA6IDtcbiAgICAtLWJ0bi10b2dnbGUtY29sb3IgICAgICAgICAgICA6IHZhcigtLW1vbm8tNDAwKTtcbiAgICAtLWJ0bi10b2dnbGUtaG92ZXItYmFja2dyb3VuZCA6IHZhcigtLWNvbG9yLWhvdmVyKTtcbiAgICAtLWJ0bi10b2dnbGUtaG92ZXItY29sb3IgICAgICA6IHZhcigtLWNvbG9yLWhvdmVyLWNvbnRlbnQpO1xuICAgIC0tZHJvcC1zaGFkb3cgICAgICAgICAgICAgICAgIDogZHJvcC1zaGFkb3coMCAzcHggNXB4IHJnYmEoMCwgMCwgMCwgMC4xNSkpO1xuICAgIC0taW5wdXQtYmFja2dyb3VuZCAgICAgICAgICAgIDogI2ZmZjtcbiAgICAtLWlucHV0LWJvcmRlci1jb2xvciAgICAgICAgICA6IHZhcigtLWJvcmRlci1jb2xvcik7XG4gICAgLS1pbnB1dC1mb2N1cy1jb2xvciAgICAgICAgICAgOiB2YXIoLS1jb2xvci1wcmltYXJ5KTtcbiAgICAtLWlucHV0LWNvbG9yICAgICAgICAgICAgICAgICA6IHZhcigtLXRleHQtY29sb3IpO1xuICAgIC0taW5wdXQtcGxhY2Vob2xkZXItY29sb3IgICAgIDogdmFyKC0tbW9uby00MDApO1xuICAgIC0ta2JkLWJhY2tncm91bmQgICAgICAgICAgICAgIDogdmFyKC0tbW9uby02MDApO1xuICAgIC0ta2JkLWJvcmRlci1jb2xvciAgICAgICAgICAgIDogdHJhbnNwYXJlbnQ7XG4gICAgLS1rYmQtY29sb3IgICAgICAgICAgICAgICAgICAgOiAjZmZmO1xuICAgIC0tbWF4LXdpZHRoICAgICAgICAgICAgICAgICAgIDogNzVjaDtcbiAgICAtLW1kLWJyYWNrZXRzICAgICAgICAgICAgICAgICA6IHZhcigtLW1vbm8tNDAwKTtcbiAgICAtLW1kLWJyYWNrZXRzLWV4cGFuZGVkICAgICAgICA6IHZhcigtLWNvbG9yLXNlY29uZGFyeSk7XG4gICAgLS1tZC10YWdzICAgICAgICAgICAgICAgICAgICAgOiB2YXIoLS1tZC1icmFja2V0cyk7XG4gICAgLS1tZC10YWdzLWV4cGFuZGVkICAgICAgICAgICAgOiB2YXIoLS1tZC1icmFja2V0cy1leHBhbmRlZCk7XG4gICAgLS1tZW51LWJhY2tncm91bmQgICAgICAgICAgICAgOiAjZmZmO1xuICAgIC0tbWVudS1ib3JkZXItd2lkdGggICAgICAgICAgIDogMDtcbiAgICAtLW1lbnUtY29sb3IgICAgICAgICAgICAgICAgICA6IGluaGVyaXQ7XG4gICAgLS1zY3JvbGxiYXItdGh1bWItY29sb3IgICAgICAgOiB2YXIoLS1tb25vLTMwMCk7XG4gICAgLS1zY3JvbGxiYXItd2lkdGggICAgICAgICAgICAgOiA2cHg7XG4gICAgLS1zZWFyY2gtbWF0Y2gtY29sb3IgICAgICAgICAgOiB2YXIoLS10ZXh0LWNvbG9yKTtcbiAgICAtLXNlbGVjdGlvbi1jb2xvciAgICAgICAgICAgICA6IDtcbiAgICAtLXNpZGViYXItYWN0aXZlLWJhY2tncm91bmQgICA6IHZhcigtLWNvbG9yLWhvdmVyKTtcbiAgICAtLXNpZGViYXItYWN0aXZlLWNvbG9yICAgICAgICA6IHZhcigtLWNvbG9yLWhvdmVyLWNvbnRlbnQpO1xuICAgIC0tc2lkZWJhci1iYWNrZ3JvdW5kICAgICAgICAgIDogdmFyKC0tbW9uby0xMDApO1xuICAgIC0tc2lkZWJhci1ib3JkZXItY29sb3IgICAgICAgIDogdmFyKC0tbW9uby0yMDApO1xuICAgIC0tc2lkZWJhci1ib3JkZXItd2lkdGggICAgICAgIDogMXB4O1xuICAgIC0tc2lkZWJhci1jb2xvciAgICAgICAgICAgICAgIDogdmFyKC0tbW9uby03MDApO1xuICAgIC0tc2lkZWJhci1ob3Zlci1iYWNrZ3JvdW5kICAgIDogdmFyKC0tY29sb3ItaG92ZXIpO1xuICAgIC0tc2lkZWJhci1ob3Zlci1jb2xvciAgICAgICAgIDogdmFyKC0tY29sb3ItaG92ZXItY29udGVudCk7XG4gICAgLS10ZXh0LWNvbG9yICAgICAgICAgICAgICAgICAgOiB2YXIoLS1tb25vLTcwMCk7XG4gICAgLS10b29sdGlwLWJhY2tncm91bmQgICAgICAgICAgOiB2YXIoLS1tb25vLTUwKTtcbiAgICAtLXRvb2x0aXAtdGV4dC1jb2xvciAgICAgICAgICA6IHZhcigtLW1vbm8tODAwKTtcblxuICAgIC8qIEVsZW1lbnRzICovXG4gICAgLS1ibG9ja3F1b3RlLWJhY2tncm91bmQgICAgICAgOiB2YXIoLS1tb25vLTEwMCk7XG4gICAgLS1ibG9ja3F1b3RlLWJvcmRlci1jb2xvciAgICAgOiB2YXIoLS1jb2xvci1wcmltYXJ5KTtcbiAgICAtLWJsb2NrcXVvdGUtYm9yZGVyLXdpZHRoICAgICA6IDAgMCAwIDRweDtcbiAgICAtLWJsb2NrcXVvdGUtY29sb3IgICAgICAgICAgICA6IGluaGVyaXQ7XG4gICAgLS1ibG9ja3F1b3RlLXBhZGRpbmcgICAgICAgICAgOiAxcmVtIDEuNXJlbSAxcmVtIDEuNXJlbTtcbiAgICAtLWNvZGUtaW5saW5lLWJhY2tncm91bmQgICAgICA6IHZhcigtLW1vbm8tMjAwKTtcbiAgICAtLWNvZGUtaW5saW5lLWNvbG9yICAgICAgICAgICA6IHZhcigtLXN0cm9uZy1jb2xvcik7XG4gICAgLS1jb2RlLXBhZGRpbmctdGIgICAgICAgICAgICAgOiAxLjVlbTtcbiAgICAtLWNvZGUtcGFkZGluZy1sciAgICAgICAgICAgICA6IDEuNWVtO1xuICAgIC0tY2hlY2tib3gtYmFja2dyb3VuZCAgICAgICAgIDogdmFyKC0tbW9uby0xMDApO1xuICAgIC0tY2hlY2tib3gtYm9yZGVyLWNvbG9yICAgICAgIDogdmFyKC0tbW9uby0zMDApO1xuICAgIC0tY2hlY2tib3gtYm9yZGVyLXJhZGl1cyAgICAgIDogdmFyKC0tYm9yZGVyLXJhZGl1cy1zKTtcbiAgICAtLWNoZWNrYm94LWNoZWNrLWNvbG9yICAgICAgICA6IHZhcigtLWNvbG9yLXByaW1hcnktY29udGVudCk7XG4gICAgLS1jaGVja2JveC1zaXplICAgICAgICAgICAgICAgOiAxLjJyZW07XG4gICAgLS1jb3VudGVyLWNvbG9yICAgICAgICAgICAgICAgOiBpbmhlcml0O1xuICAgIC0taDEtZm9udC1zaXplICAgICAgICAgICAgICAgIDogdmFyKC0tZm9udC1zaXplLXh4bCk7XG4gICAgLS1oMS1sZXR0ZXItc3BhY2luZyAgICAgICAgICAgOiAtMC4wM2VtO1xuICAgIC0taDItZm9udC1zaXplICAgICAgICAgICAgICAgIDogdmFyKC0tZm9udC1zaXplLXhsKTtcbiAgICAtLWgyLWxldHRlci1zcGFjaW5nICAgICAgICAgICA6IC0wLjAyZW07XG4gICAgLS1oMy1mb250LXNpemUgICAgICAgICAgICAgICAgOiB2YXIoLS1mb250LXNpemUtbCk7XG4gICAgLS1oMy1sZXR0ZXItc3BhY2luZyAgICAgICAgICAgOiAtMC4wMWVtO1xuICAgIC0taDQtZm9udC1zaXplICAgICAgICAgICAgICAgIDogdmFyKC0tZm9udC1zaXplLW0pO1xuICAgIC0taDUtZm9udC1zaXplICAgICAgICAgICAgICAgIDogdmFyKC0tZm9udC1zaXplLW0pO1xuICAgIC0taDYtZm9udC1zaXplICAgICAgICAgICAgICAgIDogdmFyKC0tZm9udC1zaXplLXMpO1xuICAgIC0taGVhZGluZy1jb2xvciAgICAgICAgICAgICAgIDogdmFyKC0tbW9uby04MDApO1xuICAgIC0taGVhZGluZy1mb250LXdlaWdodCAgICAgICAgIDogODAwO1xuICAgIC0taHItY29sb3IgICAgICAgICAgICAgICAgICAgIDogdmFyKC0tbW9uby0zMDApO1xuICAgIC0taHItaGVpZ2h0ICAgICAgICAgICAgICAgICAgIDogMnB4O1xuICAgIC0tbGluay1jb2xvciAgICAgICAgICAgICAgICAgIDogdmFyKC0tY29sb3ItcHJpbWFyeSk7XG4gICAgLS1tYXJrZWQtY29sb3IgICAgICAgICAgICAgICAgOiBpbmhlcml0O1xuICAgIC0tbWFya2VyLWNvbG9yICAgICAgICAgICAgICAgIDogaW5oZXJpdDtcbiAgICAtLXN0cm9uZy1jb2xvciAgICAgICAgICAgICAgICA6IHZhcigtLW1vbm8tODAwKTtcbiAgICAtLXN0cm9uZy1mb250LXdlaWdodCAgICAgICAgICA6IDYwMDtcbiAgICAtLXRhYmxlLWVkaXQtYWN0aXZlLWJhY2tncm91bmQ6IHZhcigtLW1vbm8tNTAwKTtcbiAgICAtLXRhYmxlLWVkaXQtYWN0aXZlLWNvbG9yICAgICA6IHZhcigtLW1vbm8tNTApO1xuICAgIC0tdGFibGUtZWRpdC1iYWNrZ3JvdW5kICAgICAgIDogdmFyKC0tbW9uby0yMDApO1xuICAgIC0tdGFibGUtZWRpdC1jb2xvciAgICAgICAgICAgIDogdmFyKC0tbW9uby02MDApO1xuICAgIC0tdGFibGUtZWRpdC1ob3Zlci1iYWNrZ3JvdW5kIDogdmFyKC0tbW9uby0zMDApO1xuICAgIC0tdGFibGUtZWRpdC1ob3Zlci1jb2xvciAgICAgIDogdmFyKC0tdGFibGUtZWRpdC1jb2xvcik7XG4gICAgLS10Ym9keS1ib3JkZXItY29sb3IgICAgICAgICAgOiB1bnNldDtcbiAgICAtLXRib2R5LWJvcmRlci13aWR0aCAgICAgICAgICA6IHVuc2V0O1xuICAgIC0tdGQtYm9yZGVyLWNvbG9yICAgICAgICAgICAgIDogdW5zZXQ7XG4gICAgLS10ZC1ib3JkZXItd2lkdGggICAgICAgICAgICAgOiB1bnNldDtcbiAgICAtLXRkLXBhZGRpbmcgICAgICAgICAgICAgICAgICA6IDAuNXJlbSAwLjc1cmVtO1xuICAgIC0tdGgtYm9yZGVyLWNvbG9yICAgICAgICAgICAgIDogdW5zZXQ7XG4gICAgLS10aC1ib3JkZXItd2lkdGggICAgICAgICAgICAgOiB1bnNldDtcbiAgICAtLXRoLWNvbG9yICAgICAgICAgICAgICAgICAgICA6IHZhcigtLXN0cm9uZy1jb2xvcik7XG4gICAgLS10aC1mb250LXdlaWdodCAgICAgICAgICAgICAgOiB2YXIoLS1zdHJvbmctZm9udC13ZWlnaHQpO1xuICAgIC0tdGgtcGFkZGluZyAgICAgICAgICAgICAgICAgIDogMCAwLjc1cmVtIDAuNXJlbSAwLjc1cmVtO1xuICAgIC0tdGhlYWQtYm9yZGVyLWNvbG9yICAgICAgICAgIDogdmFyKC0tbW9uby0zMDApO1xuICAgIC0tdGhlYWQtYm9yZGVyLXdpZHRoICAgICAgICAgIDogMCAwIDJweCAwO1xuICAgIC0tdHItYWx0LWJhY2tncm91bmQgICAgICAgICAgIDogdmFyKC0tbW9uby0xMDApO1xuICAgIC0tdHItYm9yZGVyLWNvbG9yICAgICAgICAgICAgIDogdmFyKC0tbW9uby0yMDApO1xuICAgIC0tdHItYm9yZGVyLXdpZHRoICAgICAgICAgICAgIDogMCAwIDFweCAwO1xuXG4gICAgLyogU3ludGF4IEhpZ2hsaWdodGluZyAqL1xuICAgIC8qIE5PVEU6IFR5cG9yYSB1c2VzIENvZGVNaXJyb3IgZm9yIHN5bnRheCBoaWdobGlnaHQgKi9cbiAgICAvKiBTZWUgaHR0cHM6Ly9jb2RlbWlycm9yLm5ldCBmb3IgZGV0YWlscyBhbmQgdGhlbWVzICovXG4gICAgLS1jb2RlLWFjdGl2ZWxpbmUtYmFja2dyb3VuZDogdmFyKC0tbW9uby0yMDApO1xuICAgIC0tY29kZS1hdG9tLWNvbG9yICAgICAgICAgICA6IHZhcigtLWFtYmVyLTYwMCk7XG4gICAgLS1jb2RlLWF0dHJpYnV0ZS1jb2xvciAgICAgIDogdmFyKC0tc2t5LTYwMCk7XG4gICAgLS1jb2RlLWJhY2tncm91bmQgICAgICAgICAgIDogdmFyKC0tbW9uby0xMDApO1xuICAgIC0tY29kZS1icmFja2V0LWNvbG9yICAgICAgICA6IHZhcigtLW1vbm8tNDAwKTtcbiAgICAtLWNvZGUtYnVpbHRpbi1jb2xvciAgICAgICAgOiB2YXIoLS1lbWVyYWxkLTYwMCk7XG4gICAgLS1jb2RlLWNvbW1lbnQtY29sb3IgICAgICAgIDogdmFyKC0tbW9uby00MDApO1xuICAgIC0tY29kZS1jdXJzb3ItYm9yZGVyICAgICAgICA6IDJweCBzb2xpZCB2YXIoLS1jb2xvci1wcmltYXJ5KTtcbiAgICAtLWNvZGUtZGVmLWNvbG9yICAgICAgICAgICAgOiB2YXIoLS12aW9sZXQtNjAwKTtcbiAgICAtLWNvZGUtZXJyb3ItY29sb3IgICAgICAgICAgOiB2YXIoLS1yZWQtNjAwKTtcbiAgICAtLWNvZGUtZ3V0dGVyLWJvcmRlci1jb2xvciAgOiB2YXIoLS1tb25vLTIwMCk7XG4gICAgLS1jb2RlLWtleXdvcmQtY29sb3IgICAgICAgIDogdmFyKC0tc2t5LTYwMCk7XG4gICAgLS1jb2RlLWxhbmd1YWdlLWJhY2tncm91bmQgIDogdmFyKC0tY29kZS1hY3RpdmVsaW5lLWJhY2tncm91bmQpO1xuICAgIC0tY29kZS1sYW5ndWFnZS1jb2xvciAgICAgICA6IHZhcigtLWNvZGUtdGV4dC1jb2xvcik7XG4gICAgLS1jb2RlLWxpbmVudW1iZXItY29sb3IgICAgIDogdmFyKC0tbW9uby00MDApO1xuICAgIC0tY29kZS1saW5rLWNvbG9yICAgICAgICAgICA6IDtcbiAgICAtLWNvZGUtbWV0YS1jb2xvciAgICAgICAgICAgOiB2YXIoLS1yb3NlLTYwMCk7XG4gICAgLS1jb2RlLW51bWJlci1jb2xvciAgICAgICAgIDogO1xuICAgIC0tY29kZS1vcGVyYXRvci1jb2xvciAgICAgICA6IHZhcigtLXJvc2UtNjAwKTtcbiAgICAtLWNvZGUtcHJvcGVydHktY29sb3IgICAgICAgOiB2YXIoLS1za3ktNjAwKTtcbiAgICAtLWNvZGUtcXVhbGlmaWVyLWNvbG9yICAgICAgOiB2YXIoLS1lbWVyYWxkLTYwMCk7XG4gICAgLS1jb2RlLXNlbGVjdGVkLWJhY2tncm91bmQgIDogdmFyKC0tc2VsZWN0aW9uLWJhY2tncm91bmQpO1xuICAgIC0tY29kZS1zdHJpbmctY29sb3IgICAgICAgICA6IDtcbiAgICAtLWNvZGUtc3RyaW5nLTItY29sb3IgICAgICAgOiA7XG4gICAgLS1jb2RlLXRhZy1jb2xvciAgICAgICAgICAgIDogdmFyKC0tdmlvbGV0LTYwMCk7XG4gICAgLS1jb2RlLXRleHQtY29sb3IgICAgICAgICAgIDogdmFyKC0tbW9uby03MDApO1xuICAgIC0tY29kZS10eXBlLWNvbG9yICAgICAgICAgICA6IHZhcigtLXJvc2UtNjAwKTtcbiAgICAtLWNvZGUtdmFyaWFibGUtY29sb3IgICAgICAgOiB2YXIoLS1jeWFuLTYwMCk7XG4gICAgLS1jb2RlLXZhcmlhYmxlLTItY29sb3IgICAgIDogdmFyKC0tY3lhbi02MDApO1xuICAgIC0tY29kZS12YXJpYWJsZS0zLWNvbG9yICAgICA6IHZhcigtLWVtZXJhbGQtNjAwKTtcblxuICAgIC8qIE1lcm1haWQqL1xuICAgIC0tbWVybWFpZC10aGVtZSAgICAgICAgICAgICAgOiBuZXV0cmFsOyAvKiBiYXNlLCBkYXJrLCBmb3Jlc3QsIG5ldXRyYWwsIG5pZ2h0ICovXG4gICAgLS1tZXJtYWlkLWZvbnQtZmFtaWx5ICAgICAgICA6IDtcbiAgICAtLW1lcm1haWQtZmxvd2NoYXJ0LWN1cnZlICAgIDogYmFzaXM7IC8qIGJhc2lzLCBsaW5lYXIsIG5hdHVyYWwsIHN0ZXAgKi9cbiAgICAtLW1lcm1haWQtc2VxdWVuY2UtbnVtYmVycyAgIDogb2ZmOyAvKiBvZmYsIG9uICovXG4gICAgLS1tZXJtYWlkLS1nYW50dC1sZWZ0LXBhZGRpbmc6IDc1O1xuXG4gICAgLyogU2VxdWVuY2UgKi9cbiAgICAtLXNlcXVlbmNlLXRoZW1lOiBzaW1wbGU7IC8qIGhhbmQsIHNpbXBsZSAqL1xufVxuXG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4vKiBQcmludCAqL1xuLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuQG1lZGlhIHByaW50IHtcbiAgICA6cm9vdCB7XG4gICAgICAgIC0tYmFja2dyb3VuZC1jb2xvcjogI2ZmZjtcbiAgICB9XG59XG4iLCIvKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4vKiBUeXBvcmEgKE92ZXJyaWRlcylcbi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbjpyb290IHtcbiAgICAtLWFjdGl2ZS1maWxlLWJnLWNvbG9yICAgIDogdmFyKC0tc2lkZWJhci1hY3RpdmUtYmFja2dyb3VuZCk7XG4gICAgLS1hY3RpdmUtZmlsZS10ZXh0LWNvbG9yICA6IHZhcigtLXNpZGViYXItYWN0aXZlLWNvbG9yKTtcbiAgICAtLWJnLWNvbG9yICAgICAgICAgICAgICAgIDogdmFyKC0tYmFja2dyb3VuZC1jb2xvcik7XG4gICAgLS1jb250cm9sLXRleHQtY29sb3IgICAgICA6IHZhcigtLXNpZGViYXItY29sb3IpO1xuICAgIC0tY29udHJvbC10ZXh0LWhvdmVyLWNvbG9yOiB2YXIoLS1zaWRlYmFyLWhvdmVyLWNvbG9yKTtcbiAgICAtLWl0ZW0taG92ZXItYmctY29sb3IgICAgIDogdmFyKC0tY29sb3ItaG92ZXIpO1xuICAgIC0taXRlbS1ob3Zlci10ZXh0LWNvbG9yICAgOiB2YXIoLS1jb2xvci1ob3Zlci1jb250ZW50KTtcbiAgICAtLW1kLWNoYXItY29sb3IgICAgICAgICAgIDogdmFyKC0tbWQtYnJhY2tldHMtZXhwYW5kZWQpO1xuICAgIC0tbWV0YS1jb250ZW50LWNvbG9yICAgICAgOiBpbmhlcml0O1xuICAgIC0tbW9ub3NwYWNlICAgICAgICAgICAgICAgOiB2YXIoLS1mb250LWZhbWlseS1tb25vKTtcbiAgICAtLXNlYXJjaC1zZWxlY3QtYmctY29sb3IgIDogdmFyKC0tc2VhcmNoLW1hdGNoLWJhY2tncm91bmQpO1xuICAgIC0tc2VhcmNoLXNlbGVjdC10ZXh0LWNvbG9yOiB2YXIoLS1zZWFyY2gtbWF0Y2gtY29sb3IpO1xuICAgIC0tc2VsZWN0LXRleHQtYmctY29sb3IgICAgOiB2YXIoLS1zZWxlY3Rpb24tYmFja2dyb3VuZCk7XG4gICAgLS13aW5kb3ctYm9yZGVyICAgICAgICAgICA6IDFweCBzb2xpZCB2YXIoLS1ib3JkZXItY29sb3IpO1xufVxuIiwiLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi8qIEJhc2Vcbi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4qLFxuOjpiZWZvcmUsXG46OmFmdGVyICB7XG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICBib3JkZXI6IDA7XG4gICAgYm9yZGVyLXN0eWxlOiBzb2xpZDtcbiAgICBib3JkZXItY29sb3I6IGN1cnJlbnRDb2xvcjtcbn1cblxuaHRtbCxcbmJvZHkge1xuICAgIG1hcmdpbjogMDtcbiAgICBsaW5lLWhlaWdodDogdmFyKC0tbGluZS1oZWlnaHQpO1xufVxuXG5odG1sIHtcbiAgICBhY2NlbnQtY29sb3I6IHZhcigtLWNvbG9yLXByaW1hcnkpO1xuICAgIGZvbnQtZmFtaWx5OiB2YXIoLS1mb250LWZhbWlseS11aSk7XG4gICAgZm9udC1mZWF0dXJlLXNldHRpbmdzOiBcImxpZ2FcIiAxLCBcImNhbHRcIiAxOyAvKiBmaXggZm9yIENocm9tZSAqL1xuICAgIGZvbnQtb3B0aWNhbC1zaXppbmc6IGF1dG87XG4gICAgZm9udC1zaXplOiB2YXIoLS1mb250LXNpemUpO1xuICAgIGZvbnQtd2VpZ2h0OiB2YXIoLS1mb250LXdlaWdodCk7XG59XG5cbmEsXG5hIGNvZGUge1xuICAgIGNvbG9yOiB2YXIoLS1saW5rLWNvbG9yKTtcbn1cblxuYSB7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG59XG5cbjp3aGVyZShhYmJyLCBkZm4pW3RpdGxlXSB7XG4gICAgY3Vyc29yOiBoZWxwO1xuICAgIGJvcmRlci1ib3R0b206IDFweCBkb3R0ZWQ7XG59XG5cbmIsXG5zdHJvbmcge1xuICAgIGNvbG9yOiB2YXIoLS1zdHJvbmctY29sb3IpO1xuICAgIGZvbnQtd2VpZ2h0OiB2YXIoLS1zdHJvbmctZm9udC13ZWlnaHQpO1xufVxuXG5ibG9ja3F1b3RlIHtcbiAgICBtYXJnaW46IDEuNXJlbSAwO1xuICAgIHBhZGRpbmc6IHZhcigtLWJsb2NrcXVvdGUtcGFkZGluZyk7XG4gICAgYm9yZGVyLXdpZHRoOiB2YXIoLS1ibG9ja3F1b3RlLWJvcmRlci13aWR0aCk7XG4gICAgYm9yZGVyLWNvbG9yOiB2YXIoLS1ibG9ja3F1b3RlLWJvcmRlci1jb2xvcik7XG4gICAgYmFja2dyb3VuZDogdmFyKC0tYmxvY2txdW90ZS1iYWNrZ3JvdW5kKTtcbiAgICBjb2xvcjogdmFyKC0tYmxvY2txdW90ZS1jb2xvcik7XG59XG5cbmNvZGUsXG5rYmQsXG5zYW1wLFxucHJlIHtcbiAgICBmb250LWZhbWlseTogdmFyKC0tZm9udC1mYW1pbHktbW9ubyk7XG4gICAgZm9udC1zaXplOiB2YXIoLS1mb250LXNpemUtbW9ubyk7XG59XG5cbmtiZCB7XG4gICAgcGFkZGluZzogLjJlbSAuNzVlbSAuM2VtIC43NWVtO1xuICAgIGJvcmRlci1jb2xvcjogdmFyKC0ta2JkLWJvcmRlci1jb2xvcik7XG4gICAgYm9yZGVyLXJhZGl1czogdmFyKC0tYm9yZGVyLXJhZGl1cyk7XG4gICAgYmFja2dyb3VuZDogdmFyKC0ta2JkLWJhY2tncm91bmQpO1xuICAgIGNvbG9yOiB2YXIoLS1rYmQtY29sb3IpO1xuICAgIGJveC1zaGFkb3c6IG5vbmU7XG59XG5cbmNvZGUsXG5wcmUge1xuICAgIGZvbnQtc2l6ZTogdmFyKC0tZm9udC1zaXplLW1vbm8pO1xuICAgIGZvbnQtd2VpZ2h0OiB2YXIoLS1mb250LXdlaWdodC1tb25vKTtcbn1cblxuaHIge1xuICAgIGJvcmRlci1jb2xvcjogdmFyKC0taHItY29sb3IpO1xuICAgIGJvcmRlci10b3Atd2lkdGg6IHZhcigtLWhyLWhlaWdodCk7XG59XG5cbmlucHV0OjpwbGFjZWhvbGRlcixcbnRleHRhcmVhOjpwbGFjZWhvbGRlciB7XG4gICAgY29sb3I6IHZhcigtLWlucHV0LXBsYWNlaG9sZGVyLWNvbG9yKSAhaW1wb3J0YW50O1xufVxuXG5tYXJrIHtcbiAgICBib3JkZXItcmFkaXVzOiB2YXIoLS1ib3JkZXItcmFkaXVzLXhzKTtcbiAgICBib3gtc2hhZG93OiAwIDAgMCAxcHggdmFyKC0tbWFya2VkLWJhY2tncm91bmQpO1xuICAgIGJhY2tncm91bmQ6IHZhcigtLW1hcmtlZC1iYWNrZ3JvdW5kKTtcbiAgICBjb2xvcjogdmFyKC0tbWFya2VkLWNvbG9yKTtcbn1cblxucCB7XG4gICAgbWFyZ2luLXRvcDogMWVtO1xuICAgIG1hcmdpbi1ib3R0b206IDFlbTtcbn1cbiIsIi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4vKiBGb250c1xuLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi8qIEludGVyOiBodHRwczovL3JzbXMubWUvaW50ZXIvICovXG5AZm9udC1mYWNlIHtcbiAgZm9udC1mYW1pbHk6IEludGVyVmFyaWFibGU7XG4gIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgZm9udC13ZWlnaHQ6IDEwMCA5MDA7XG4gIGZvbnQtZGlzcGxheTogc3dhcDtcbiAgc3JjOiB1cmwoXCJ0aGVtZWFibGUvZm9udHMvSW50ZXJWYXJpYWJsZS53b2ZmMlwiKSBmb3JtYXQoXCJ3b2ZmMlwiKTtcbn1cbkBmb250LWZhY2Uge1xuICBmb250LWZhbWlseTogSW50ZXJWYXJpYWJsZTtcbiAgZm9udC1zdHlsZTogaXRhbGljO1xuICBmb250LXdlaWdodDogMTAwIDkwMDtcbiAgZm9udC1kaXNwbGF5OiBzd2FwO1xuICBzcmM6IHVybChcInRoZW1lYWJsZS9mb250cy9JbnRlclZhcmlhYmxlLUl0YWxpYy53b2ZmMlwiKSBmb3JtYXQoXCJ3b2ZmMlwiKTtcbn1cblxuXG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLyogQXBwXG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuOjotd2Via2l0LXNjcm9sbGJhci10aHVtYiB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tc2Nyb2xsYmFyLXRodW1iLWNvbG9yKTtcbn1cblxuLm1hYy1vcyB7XG4gICAgOjotd2Via2l0LXNjcm9sbGJhciB7XG4gICAgICBtYXgtd2lkdGg6IHZhcigtLXNjcm9sbGJhci13aWR0aCk7XG4gICAgICBtYXgtaGVpZ2h0OiB2YXIoLS1zY3JvbGxiYXItd2lkdGgpO1xuICAgIH1cblxuICAgIDo6LXdlYmtpdC1zY3JvbGxiYXItdGh1bWIge1xuICAgICAgICBib3JkZXItcmFkaXVzOiAxMDB2dztcbiAgICB9XG59XG5cbi8qIFRhYnMgKi9cbmJvZHk6bm90KFtjbGFzcyo9XCJzZWFtbGVzc1wiXSkgOmlzKCN0eXBvcmEtc2lkZWJhciwgY29udGVudCkge1xuICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCB2YXIoLS1ib3JkZXItY29sb3IpO1xufVxuXG4vKiBCbGluayBFZmZlY3QgKGV4OiByZW5hbWUgZmlsZSkgKi9cbi5ibGluay1hcmVhIHtcbiAgLXdlYmtpdC1hbmltYXRpb246IG5vbmU7XG4gICAgICAgICAgYW5pbWF0aW9uOiBub25lO1xufVxuXG4vKiBCdXR0b25zICovXG4uYnRuLXByaW1hcnksXG4uYnRuLXByaW1hcnk6aG92ZXIge1xuICAgIGJhY2tncm91bmQ6IHZhcigtLWNvbG9yLXByaW1hcnkpO1xuICAgIGNvbG9yOiB2YXIoLS1jb2xvci1wcmltYXJ5LWNvbnRlbnQpO1xufVxuXG4uYnRuLXByaW1hcnk6aG92ZXIge1xuICAgIGZpbHRlcjogY29udHJhc3QoMS4yKTtcbn1cblxuLyogQ29udGV4dCBNZW51cyAqL1xuLmNvbnRleHQtbWVudSxcbi5kcm9wZG93bi1tZW51LFxuOmlzKC5jb250ZXh0LW1lbnUsIC5kcm9wZG93bi1tZW51KSA+IGxpID4gYSB7XG4gICAgY29sb3I6IHZhcigtLW1lbnUtY29sb3IpO1xufVxuXG4uY29udGV4dC1tZW51LFxuLmRyb3Bkb3duLW1lbnUge1xuICAgIGJvcmRlcjogdmFyKC0tbWVudS1ib3JkZXItd2lkdGgpIHNvbGlkIHZhcigtLWJvcmRlci1jb2xvcik7XG4gICAgYmFja2dyb3VuZDogdmFyKC0tbWVudS1iYWNrZ3JvdW5kKTtcbiAgICBmb250LXNpemU6IHZhcigtLWZvbnQtc2l6ZS11aSk7XG59XG5cbjppcyguY29udGV4dC1tZW51LCAuZHJvcGRvd24tbWVudSkgLnR5LW1lbnUtc2hvcnRjdXQge1xuICAgIGZvbnQtZmFtaWx5OiB2YXIoLS1mb250LWZhbWlseS11aSk7XG59XG5cbi5jb250ZXh0LW1lbnUgLmRpdmlkZXIge1xuICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCB2YXIoLS1ib3JkZXItY29sb3IpO1xuICAgIG9wYWNpdHk6IDE7XG59XG5cbi8qIEZvcm0gQ29udHJvbHMgKi9cbi5mb3JtLWNvbnRyb2w6Zm9jdXMge1xuICAgIC13ZWJraXQtYm94LXNoYWRvdzogbm9uZTtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IG5vbmU7XG59XG5cbi8qIFRvb2x0aXBzICovXG4uY29kZS10b29sdGlwLWNvbnRlbnQgKiB7XG4gICAgY29sb3I6IHVuc2V0O1xufVxuXG4jdHktdG9vbHRpcCB7XG4gICAgYm9yZGVyOiAwO1xuICAgIGJhY2tncm91bmQ6IHZhcigtLXRvb2x0aXAtYmFja2dyb3VuZCk7XG4gICAgY29sb3I6IHZhcigtLXRvb2x0aXAtdGV4dC1jb2xvcik7XG59XG5cbi8qIEF1dG8tc3VnZ2VzdCAoZXg6IGNvZGUgZmVuY2UgbGFuZ3VhZ2Ugc2VsZWN0aW9uKSAqL1xuI3R5LWF1dG8tc3VnZ2VzdCB7XG4gICAgYm9yZGVyLXJhZGl1czogdmFyKC0tYm9yZGVyLXJhZGl1cyk7XG4gICAgZm9udC1zaXplOiB2YXIoLS1mb250LXNpemUtcyk7XG4gICAgYm94LXNoYWRvdzogbm9uZTtcbiAgICBmaWx0ZXI6IHZhcigtLWRyb3Atc2hhZG93KTtcbn1cblxuLyogU2VhcmNoIEhpdHMgKi9cbi5tZC1zZWFyY2gtaGl0LFxuLm1kLXNlYXJjaC1oaXQubWQtc2VhcmNoLXNlbGVjdCxcbi5tZC1zZWFyY2gtc2VsZWN0LFxuYm9keSA6aXMoI3dyaXRlLCAjdHlwb3JhLXNvdXJjZSkgLmNtLXNlYXJjaC1oaXQsXG4udHktZmlsZS1zZWFyY2gtbWF0Y2gtdGV4dCxcbi50eS1vdXRsaW5lLWhpdFtjbGFzc10ge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHVuc2V0ICFpbXBvcnRhbnQ7XG4gICAgYmFja2dyb3VuZDogdmFyKC0tc2VhcmNoLW1hdGNoLWJhY2tncm91bmQpICFpbXBvcnRhbnQ7XG4gICAgY29sb3I6IHZhcigtLXNlYXJjaC1tYXRjaC1jb2xvcikgIWltcG9ydGFudDtcbn1cblxuLm1kLXNlYXJjaC1oaXQsXG4ubWQtc2VhcmNoLWhpdC5tZC1zZWFyY2gtc2VsZWN0LFxuLm1kLXNlYXJjaC1zZWxlY3QsXG5ib2R5IDppcygjd3JpdGUsICN0eXBvcmEtc291cmNlKSAuY20tc2VhcmNoLWhpdCB7XG4gICAgYm9yZGVyLXJhZGl1czogdmFyKC0tYm9yZGVyLXJhZGl1cy14cyk7XG4gICAgYm94LXNoYWRvdzogMCAwIDAgMnB4IHZhcigtLXNlYXJjaC1tYXRjaC1ib3JkZXItY29sb3IpO1xufVxuXG4udHktZmlsZS1zZWFyY2gtbWF0Y2gtdGV4dCxcbi50eS1vdXRsaW5lLWhpdFtjbGFzc10ge1xuICAgIHBhZGRpbmctcmlnaHQ6IDFweDtcbiAgICBwYWRkaW5nLWxlZnQ6IDFweDtcbiAgICBib3JkZXI6IDJweCBzb2xpZCB2YXIoLS1zZWFyY2gtbWF0Y2gtYm9yZGVyLWNvbG9yKTtcbiAgICBib3JkZXItcmFkaXVzOiB2YXIoLS1ib3JkZXItcmFkaXVzLXMpO1xuICAgIGZvbnQtd2VpZ2h0OiB2YXIoLS1mb250LXdlaWdodCk7XG59XG5cblxuLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi8qIENvbnRlbnQgQXJlYVxuLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbiN3cml0ZSB7XG4gICAgbWF4LXdpZHRoOiB2YXIoLS1tYXgtd2lkdGgpO1xuICAgIGNvbG9yOiB2YXIoLS10ZXh0LWNvbG9yKTtcbiAgICBmb250LWZhbWlseTogdmFyKC0tZm9udC1mYW1pbHkpO1xufVxuXG4jd3JpdGUgPiA6Zmlyc3QtY2hpbGQge1xuICAgIG1hcmdpbi10b3A6IDA7XG59XG5cbiN3cml0ZSA+IDpsYXN0LWNoaWxkIHtcbiAgICBtYXJnaW4tYm90dG9tOiAwO1xufVxuXG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLyogRm9vdGVyXG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuZm9vdGVyLnR5LWZvb3RlciB7XG4gICAgYm9yZGVyLWNvbG9yOiB2YXIoLS1tb25vLTIwMCk7XG59XG5cbi50eXBvcmEtc291cmNldmlldy1vbiAjdG9nZ2xlLXNvdXJjZXZpZXctYnRuIHtcbiAgICBiYWNrZ3JvdW5kOiBub25lO1xuICAgIG9wYWNpdHk6IDE7XG59XG5cbi5mb290ZXItaXRlbTpob3Zlcixcbi50eXBvcmEtc291cmNldmlldy1vbiAjdG9nZ2xlLXNvdXJjZXZpZXctYnRuOmhvdmVyIHtcbiAgICBiYWNrZ3JvdW5kOiB2YXIoLS1zaWRlYmFyLWhvdmVyLWJhY2tncm91bmQpO1xuICAgIGNvbG9yOiB2YXIoLS1zaWRlYmFyLWhvdmVyLWNvbG9yKTtcbn1cbiIsIi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4vKiBRdWljayBPcGVuXG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuI3R5cG9yYS1xdWljay1vcGVuIHtcbiAgICB0b3A6IGNhbGModmFyKC0tdGl0bGUtYmFyLWhlaWdodCkgKyA1cHgpO1xuICAgIHBhZGRpbmc6IDA7XG4gICAgYm9yZGVyOiB2YXIoLS1zaWRlYmFyLWJvcmRlci13aWR0aCkgc29saWQgdmFyKC0tc2lkZWJhci1ib3JkZXItY29sb3IpO1xuICAgIGJvcmRlci1yYWRpdXM6IHZhcigtLWJvcmRlci1yYWRpdXMpO1xuICAgIGJhY2tncm91bmQ6IHZhcigtLXNpZGViYXItYmFja2dyb3VuZCk7XG4gICAgY29sb3I6IHZhcigtLXNpZGViYXItY29sb3IpO1xuICAgIGJveC1zaGFkb3c6IG5vbmU7XG4gICAgZmlsdGVyOiB2YXIoLS1kcm9wLXNoYWRvdyk7XG59XG5cbiN0eXBvcmEtcXVpY2stb3Blbi1pbnB1dCxcbi50eXBvcmEtcXVpY2stb3Blbi1saXN0IHtcbiAgICBwYWRkaW5nOiAwLjVlbTtcbn1cblxuI3R5cG9yYS1xdWljay1vcGVuLWlucHV0IGlucHV0IHtcbiAgICBtYXgtaGVpZ2h0OiB1bnNldDtcbiAgICBvdmVyZmxvdzogdW5zZXQ7XG4gICAgYm9yZGVyLWNvbG9yOiB2YXIoLS1pbnB1dC1ib3JkZXItY29sb3IpO1xuICAgIGJvcmRlci1yYWRpdXM6IHZhcigtLWJvcmRlci1yYWRpdXMtcyk7XG4gICAgYmFja2dyb3VuZDogdmFyKC0taW5wdXQtYmFja2dyb3VuZCk7XG4gICAgY29sb3I6IHZhcigtLWlucHV0LWNvbG9yKTtcbiAgICBmb250LXNpemU6IHZhcigtLWZvbnQtc2l6ZS11aSk7XG4gICAgbGluZS1oZWlnaHQ6IDI7XG59XG5cbiN0eXBvcmEtcXVpY2stb3Blbi1pbnB1dCBpbnB1dDpmb2N1cyB7XG4gICAgYm9yZGVyLWNvbG9yOiB2YXIoLS1pbnB1dC1mb2N1cy1jb2xvcik7XG59XG5cbi50eS1xdWljay1vcGVuLWNhdGVnb3J5LXRpdGxlLFxuLnR5cG9yYS1xdWljay1vcGVuLWl0ZW0tcGF0aCB7XG4gICAgb3BhY2l0eTogMC43O1xufVxuXG4udHktcXVpY2stb3Blbi1jYXRlZ29yeS10aXRsZSB7XG4gICAgbWFyZ2luLXRvcDogMC41cmVtO1xuICAgIG1hcmdpbi1ib3R0b206IDAuMTVyZW07XG4gICAgZm9udC1zaXplOiAwLjllbTtcbiAgICBoZWlnaHQ6IGF1dG87XG4gICAgbGluZS1oZWlnaHQ6IHZhcigtLWxpbmUtaGVpZ2h0KTtcbiAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgIGxldHRlci1zcGFjaW5nOiAwLjVweDtcbiAgICBmb250LXdlaWdodDogNjAwO1xufVxuXG4udHktcXVpY2stb3Blbi1jYXRlZ29yeS50eS1oYXMtcHJldiAudHktcXVpY2stb3Blbi1jYXRlZ29yeS10aXRsZSB7XG4gICAgbWFyZ2luLXRvcDogMC41cmVtO1xuICAgIHBhZGRpbmctdG9wOiAwLjVyZW07XG59XG5cbi50eXBvcmEtcXVpY2stb3Blbi1pdGVtLFxuLnR5cG9yYS1xdWljay1vcGVuLWl0ZW0tcGF0aCB7XG4gICAgbWF4LWhlaWdodDogYXV0bztcbiAgICBsaW5lLWhlaWdodDogdmFyKC0tbGluZS1oZWlnaHQpO1xufVxuXG4udHlwb3JhLXF1aWNrLW9wZW4taXRlbSB7XG4gICAgaGVpZ2h0OiBhdXRvO1xuICAgIHBhZGRpbmctdG9wOiAwLjI1ZW07XG4gICAgcGFkZGluZy1ib3R0b206IDAuMjVlbTtcbiAgICBmb250LXNpemU6IHZhcigtLWZvbnQtc2l6ZS11aSk7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xufVxuXG4udHlwb3JhLXF1aWNrLW9wZW4taXRlbS5hY3RpdmUge1xuICAgIGJvcmRlci1yYWRpdXM6IHZhcigtLWJvcmRlci1yYWRpdXMtcyk7XG59XG5cbi50eXBvcmEtcXVpY2stb3Blbi1pdGVtLXBhdGgge1xuICAgIGZvbnQtc2l6ZTogdmFyKC0tZm9udC1zaXplLXVpLXMpO1xufVxuXG4udHlwb3JhLXF1aWNrLW9wZW4taXRlbS10aXRsZSB7XG4gICAgbWFyZ2luLWJvdHRvbTogMC4yNWVtO1xuICAgIGxpbmUtaGVpZ2h0OiB2YXIoLS1saW5lLWhlaWdodCk7XG59XG5cbi50eXBvcmEtcXVpY2stb3Blbi1pdGVtLXRpdGxlIGIge1xuICAgIGJvcmRlci1yYWRpdXM6IHZhcigtLWJvcmRlci1yYWRpdXMteHMpO1xuICAgIGJveC1zaGFkb3c6IDAgMCAwIDFweCB2YXIoLS1tYXJrZWQtYmFja2dyb3VuZCk7XG4gICAgYmFja2dyb3VuZDogdmFyKC0tbWFya2VkLWJhY2tncm91bmQpO1xuICAgIGNvbG9yOiB2YXIoLS1tYXJrZWQtY29sb3IpO1xufVxuIiwiLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi8qIFNlYXJjaCBCYXIgKENNRC9DVFJMK0YpXG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLm1hYy1zZWFtbGVzcy1tb2RlICNtZC1zZWFyY2hwYW5lbCB7XG4gICAgbWF4LWhlaWdodDogNjNweDtcbn1cblxuI21kLXNlYXJjaHBhbmVsIHtcbiAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgdmFyKC0tc2lkZWJhci1ib3JkZXItY29sb3IpO1xuICAgIGJhY2tncm91bmQ6IHZhcigtLXNpZGViYXItYmFja2dyb3VuZCk7XG4gICAgY29sb3I6IHZhcigtLXNpZGViYXItY29sb3IpO1xuICAgIGJveC1zaGFkb3c6IG5vbmU7XG4gICAgZmlsdGVyOiB2YXIoLS1kcm9wLXNoYWRvdyk7XG59XG5cbiNtZC1zZWFyY2hwYW5lbCBpbnB1dCxcbiNtZC1zZWFyY2hwYW5lbCAuYnRuLFxuI3NlYXJjaHBhbmVsLW1zZyB7XG4gICAgYm9yZGVyLXJhZGl1czogdmFyKC0tYm9yZGVyLXJhZGl1cy1zKTtcbiAgICBmb250LXNpemU6IHZhcigtLWZvbnQtc2l6ZS11aS1zKTtcbn1cblxuI21kLXNlYXJjaHBhbmVsIGlucHV0IHtcbiAgICBiYWNrZ3JvdW5kOiB2YXIoLS1pbnB1dC1iYWNrZ3JvdW5kKTtcbiAgICBib3JkZXItY29sb3I6IHZhcigtLWlucHV0LWJvcmRlci1jb2xvcik7XG4gICAgY29sb3I6IHZhcigtLWlucHV0LWNvbG9yKTtcbn1cblxuI21kLXNlYXJjaHBhbmVsIGlucHV0OmZvY3VzLFxuI21kLXNlYXJjaHBhbmVsIGlucHV0Om5vdCg6cGxhY2Vob2xkZXItc2hvd24pIHtcbiAgICBib3JkZXItY29sb3I6IHZhcigtLWlucHV0LWZvY3VzLWNvbG9yKTtcbn1cblxuI21kLXNlYXJjaHBhbmVsIC5idG46bm90KC5jbG9zZS1idG4pOmhvdmVyIHtcbiAgICBib3gtc2hhZG93OiBub25lO1xufVxuXG4uc2VhcmNocGFuZWwtc2VhcmNoLW9wdGlvbi1idG4sXG4uc2VhcmNocGFuZWwtc2VhcmNoLW9wdGlvbi1idG46aG92ZXIsXG4uc2VhcmNocGFuZWwtc2VhcmNoLW9wdGlvbi1idG4uYWN0aXZlIHtcbiAgICBvcGFjaXR5OiAxO1xufVxuXG4uc2VhcmNocGFuZWwtc2VhcmNoLW9wdGlvbi1idG4ge1xuICAgIHRvcDogNHB4O1xuICAgIHBhZGRpbmc6IDNweCAycHg7XG4gICAgYm9yZGVyOiAwO1xuICAgIGJhY2tncm91bmQ6IHZhcigtLWJ0bi10b2dnbGUtYmFja2dyb3VuZCk7XG4gICAgY29sb3I6IHZhcigtLWJ0bi10b2dnbGUtY29sb3IpO1xufVxuXG4uc2VhcmNocGFuZWwtc2VhcmNoLW9wdGlvbi1idG46aG92ZXIge1xuICAgIGJhY2tncm91bmQ6IHZhcigtLWJ0bi10b2dnbGUtaG92ZXItYmFja2dyb3VuZCk7XG4gICAgY29sb3I6IHZhcigtLWJ0bi10b2dnbGUtaG92ZXItY29sb3IpO1xufVxuXG4uc2VhcmNocGFuZWwtc2VhcmNoLW9wdGlvbi1idG4uYWN0aXZlIHtcbiAgICBiYWNrZ3JvdW5kOiB2YXIoLS1idG4tdG9nZ2xlLWFjdGl2ZS1iYWNrZ3JvdW5kKTtcbiAgICBjb2xvcjogdmFyKC0tYnRuLXRvZ2dsZS1hY3RpdmUtY29sb3IpO1xufVxuXG4jc2VhcmNoLXBhbmVsLXN0YXR1cyAuZXJyb3ItbWVzc2FnZSB7XG4gICAgcGFkZGluZzogMC4yNWVtIDAuNWVtO1xuICAgIGJvcmRlci1yYWRpdXM6IHZhcigtLWJvcmRlci1yYWRpdXMtcyk7XG4gICAgYmFja2dyb3VuZDogdmFyKC0tY29sb3Itc3RhdHVzKTtcbiAgICBjb2xvcjogdmFyKC0tY29sb3Itc3RhdHVzLWNvbnRlbnQpO1xufVxuIiwiLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi8qIFNpZGViYXJcbi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4jdHlwb3JhLXNpZGViYXIge1xuICAgIGJvcmRlci10b3A6IG5vbmUgIWltcG9ydGFudDtcbiAgICBib3JkZXItcmlnaHQ6IHZhcigtLXNpZGViYXItYm9yZGVyLXdpZHRoKSBzb2xpZCB2YXIoLS1zaWRlYmFyLWJvcmRlci1jb2xvcik7XG4gICAgYmFja2dyb3VuZDogdmFyKC0tc2lkZWJhci1iYWNrZ3JvdW5kKTtcbiAgICBjb2xvcjogdmFyKC0tc2lkZWJhci1jb2xvcik7XG59XG5cbiN0eXBvcmEtc2lkZWJhcixcbiNzaWRlYmFyLWZpbGVzLW1lbnUuZHJvcGRvd24tbWVudSA+IGxpLFxuLnNpZGViYXItY29udGVudC1jb250ZW50LFxuLnR5LXNlYXJjaC1pdGVtLWxpbmUge1xuICAgIGZvbnQtc2l6ZTogdmFyKC0tZm9udC1zaXplLXVpKTtcbn1cblxuI3R5cG9yYS1zaWRlYmFyIGlucHV0IHtcbiAgICBib3JkZXItcmFkaXVzOiB2YXIoLS1ib3JkZXItcmFkaXVzLXMpO1xuICAgIGJhY2tncm91bmQ6IHZhcigtLWlucHV0LWJhY2tncm91bmQpO1xuICAgIGNvbG9yOiB2YXIoLS1pbnB1dC1jb2xvcik7XG59XG5cbi5maWxlLWxpc3QtaXRlbS10aW1lLFxuLmZpbGUtbGlzdC1pdGVtLXBhcmVudC1sb2MsXG4uZmlsZS1saXN0LWl0ZW0tc3VtbWFyeSxcbi50eS1zZWFyY2gtaXRlbS1saW5lIHtcbiAgICBmb250LWZhbWlseTogdmFyKC0tZm9udC1mYW1pbHktdWkpO1xufVxuXG4udHktc2VhcmNoLWl0ZW0tbGluZTpob3ZlciB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tc2lkZWJhci1ob3Zlci1iYWNrZ3JvdW5kKTtcbiAgICBjb2xvcjogdmFyKC0tc2lkZWJhci1ob3Zlci1jb2xvcik7XG59XG5cbi8qIFNlbGVjdGlvbiBEb3QgKi9cbi5vdXRsaW5lLWl0ZW0tYWN0aXZlOjphZnRlcixcbi5hY3RpdmUgLmZpbGUtbGlzdC1pdGVtLWZpbGUtbmFtZTo6YWZ0ZXIsXG4uYWN0aXZlIC5maWxlLW5vZGUtY29udGVudDo6YWZ0ZXIge1xuICAgIGNvbnRlbnQ6IFwiXCI7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogY2FsYyg1MCUgLSA0cHgpO1xuICAgIHJpZ2h0OiAwO1xuICAgIHdpZHRoOiA4cHg7XG4gICAgaGVpZ2h0OiA4cHg7XG4gICAgYm9yZGVyLXJhZGl1czogNTAlO1xuICAgIGJhY2tncm91bmQ6IHZhcigtLWNvbG9yLXByaW1hcnkpO1xufVxuXG4vKiBIZWFkZXJzICovXG4vKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuLyogTGludXgvV2luZG93cyAqL1xuLmluZm8tcGFuZWwtdGFiLWJvcmRlciB7XG4gICAgYm9yZGVyLXJhZGl1czogMTAwdnc7XG59XG5cbi5hY3RpdmUtdGFiLWZpbGVzICNpbmZvLXBhbmVsLXRhYi1maWxlLFxuLmFjdGl2ZS10YWItZmlsZXMgI2luZm8tcGFuZWwtdGFiLWZpbGU6aG92ZXIsXG4uYWN0aXZlLXRhYi1vdXRsaW5lICNpbmZvLXBhbmVsLXRhYi1vdXRsaW5lLFxuLmFjdGl2ZS10YWItb3V0bGluZSAjaW5mby1wYW5lbC10YWItb3V0bGluZTpob3Zlcixcbi50eS1zaG93LXNlYXJjaCAjaW5mby1wYW5lbC10YWItc2VhcmNoIHtcbiAgICBmb250LXdlaWdodDogdmFyKC0tc3Ryb25nLWZvbnQtd2VpZ2h0KTtcbiAgICBjb2xvcjogdmFyKC0tc3Ryb25nLWNvbG9yKTtcbn1cblxuLmFjdGl2ZS10YWItZmlsZXMgI2luZm8tcGFuZWwtdGFiLWZpbGUgLmluZm8tcGFuZWwtdGFiLWJvcmRlcixcbi5hY3RpdmUtdGFiLW91dGxpbmUgI2luZm8tcGFuZWwtdGFiLW91dGxpbmUgLmluZm8tcGFuZWwtdGFiLWJvcmRlcixcbi50eS1zaG93LXNlYXJjaCAjaW5mby1wYW5lbC10YWItc2VhcmNoIC5pbmZvLXBhbmVsLXRhYi1ib3JkZXIge1xuICAgIGhlaWdodDogM3B4O1xuICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWNvbG9yLXByaW1hcnkpO1xufVxuXG4vKiBtYWNPUyAqL1xuLnNpZGViYXItdGFicyB7XG4gICAgYm9yZGVyLWJvdHRvbTogdmFyKC0tc2lkZWJhci1ib3JkZXItd2lkdGgpIHNvbGlkIHZhcigtLXNpZGViYXItYm9yZGVyLWNvbG9yKTtcbn1cblxuLnNpZGViYXItdGFiIHtcbiAgICBmb250LXdlaWdodDogdmFyKC0tc3Ryb25nLWZvbnQtd2VpZ2h0KTtcbiAgICB0ZXh0LXRyYW5zZm9ybTogbm9uZTtcbn1cblxuLyogT3V0bGluZSAqL1xuLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cbiNvdXRsaW5lLWNvbnRlbnQge1xuICAgIGxpbmUtaGVpZ2h0OiB2YXIoLS1saW5lLWhlaWdodCk7XG59XG5cbi5vdXRsaW5lLWNvbnRlbnQge1xuICAgIHBhZGRpbmctdG9wOiAwO1xufVxuXG4ucGluLW91dGxpbmUgI291dGxpbmUtY29udGVudCAub3V0bGluZS1hY3RpdmUgc3Ryb25nLFxuLnBpbi1vdXRsaW5lIC5vdXRsaW5lLWFjdGl2ZSB7XG4gICAgZm9udC13ZWlnaHQ6IHZhcigtLXN0cm9uZy1mb250LXdlaWdodCk7XG59XG5cbi5waW4tb3V0bGluZSAub3V0bGluZS1hY3RpdmUge1xuICAgIGZvbnQtd2VpZ2h0OiB2YXIoLS1mb250LXdlaWdodCk7XG59XG5cbi5vdXRsaW5lLWl0ZW0sXG4ubm8tY29sbGFwc2Utb3V0bGluZSAub3V0bGluZS1pdGVtIHtcbiAgICBtYXJnaW46IDFweCAwO1xufVxuXG4ub3V0bGluZS1pdGVtIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIHBhZGRpbmctdG9wOiAwLjRlbTtcbiAgICBwYWRkaW5nLWJvdHRvbTogMC40ZW07XG59XG5cbi5vdXRsaW5lLWl0ZW06OmJlZm9yZSB7XG4gICAgY29udGVudDogXCJcIjtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiAwO1xuICAgIGJvdHRvbTogMDtcbiAgICByaWdodDogLTEwMHB4O1xuICAgIGxlZnQ6IC0xMDBweDtcbn1cblxuLm91dGxpbmUtaXRlbTpob3ZlciB7XG4gICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgIGJvcmRlci1yaWdodDogMDtcbiAgICBib3JkZXItbGVmdDogMDtcbiAgICBiYWNrZ3JvdW5kOiBub25lO1xuICAgIGNvbG9yOiB2YXIoLS1zaWRlYmFyLWhvdmVyLWNvbG9yKTtcbn1cblxuLm91dGxpbmUtaXRlbTpob3Zlcjo6YmVmb3JlIHtcbiAgICBiYWNrZ3JvdW5kOiB2YXIoLS1zaWRlYmFyLWhvdmVyLWJhY2tncm91bmQpO1xufVxuXG4ub3V0bGluZS1pdGVtID4gKiB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xufVxuXG4ub3V0bGluZS1leHBhbmRlcixcbi5vdXRsaW5lLWV4cGFuZGVyOjpiZWZvcmUge1xuICAgIC0taWNvbi13aWR0aDogMTBweDtcblxuICAgIHdpZHRoOiBjYWxjKHZhcigtLWljb24td2lkdGgpICogMik7XG4gICAgcGFkZGluZzogMDtcbiAgICBmb250LXNpemU6IHZhcigtLWljb24td2lkdGgpO1xuICAgIGxpbmUtaGVpZ2h0OiB2YXIoLS1pY29uLXdpZHRoKTtcbn1cblxuLm91dGxpbmUtZXhwYW5kZXIge1xuICAgIGRpc3BsYXk6IHVuc2V0O1xuICAgIGhlaWdodDogYXV0bztcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG59XG5cbi5vdXRsaW5lLWxhYmVsIHtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xufVxuXG4ub3V0bGluZS1sYWJlbDpob3ZlciB7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xufVxuXG4ub3V0bGluZS1pdGVtLWFjdGl2ZSB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIHBhZGRpbmctcmlnaHQ6IDhweDtcbiAgICBjb2xvcjogdmFyKC0tc2lkZWJhci1hY3RpdmUtY29sb3IpO1xufVxuXG4ub3V0bGluZS1pdGVtLWFjdGl2ZTo6YmVmb3JlIHtcbiAgICBiYWNrZ3JvdW5kOiB2YXIoLS1zaWRlYmFyLWFjdGl2ZS1iYWNrZ3JvdW5kKTtcbn1cblxuLm91dGxpbmUtaXRlbS1hY3RpdmUgLm91dGxpbmUtbGFiZWwge1xuICAgIHBhZGRpbmctcmlnaHQ6IDEwcHg7XG59XG5cbi8qIEFydGljbGVzICYgRmlsZXMgKFNoYXJlZCkgKi9cbi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG4uZmlsZS1ub2RlLWljb24uZmEtZm9sZGVyOjpiZWZvcmUge1xuICAgIGNvbnRlbnQ6IFwiXFxmMTE0XCI7XG59XG5cbi5maWxlLW5vZGUtb3Blbi1zdGF0ZSB7XG4gICAgbWFyZ2luLXRvcDogLTJweDtcbiAgICBtYXJnaW4tcmlnaHQ6IDNweDtcbiAgICBtYXJnaW4tbGVmdDogLTJweDtcbn1cblxuLmZpbGUtbm9kZS1jb2xsYXBzZWQgLmZhLWNhcmV0LXJpZ2h0OjpiZWZvcmUge1xuICAgIGNvbnRlbnQ6IFwiXFxmMTI1XCI7XG4gICAgZm9udC1mYW1pbHk6IElvbmljb25zO1xuICAgIGZvbnQtc2l6ZTogMTBweDtcbn1cblxuLmZpbGUtbm9kZS1leHBhbmRlZCAuZmEtY2FyZXQtZG93bjo6YmVmb3JlIHtcbiAgICBjb250ZW50OiBcIlxcZjEyM1wiO1xuICAgIGZvbnQtZmFtaWx5OiBJb25pY29ucztcbiAgICBmb250LXNpemU6IDEwcHg7XG59XG5cbi8qIEFydGljbGVzICovXG4vKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuLmZpbGUtbGlzdC1pdGVtLWZpbGUtZXh0LXBhcnQsXG4uZmlsZS1saXN0LWl0ZW0tcGFyZW50LWxvYyxcbi5maWxlLWxpc3QtaXRlbS1zdW1tYXJ5LFxuLmZpbGUtbGlzdC1pdGVtLXRpbWUge1xuICAgIG9wYWNpdHk6IDAuODtcbn1cblxuLmZpbGUtbGlzdC1pdGVtLXBhcmVudC1sb2MsXG4uZmlsZS1saXN0LWl0ZW0tdGltZSB7XG4gICAgbWFyZ2luLWJvdHRvbTogM3B4O1xuICAgIGZvbnQtc2l6ZTogdmFyKC0tZm9udC1zaXplLXVpLXMpO1xufVxuXG4uZmlsZS1saXN0LWl0ZW0ge1xuICAgIGJvcmRlci1ib3R0b206IHZhcigtLXNpZGViYXItYm9yZGVyLXdpZHRoKSBzb2xpZCB2YXIoLS1zaWRlYmFyLWJvcmRlci1jb2xvcik7XG59XG5cbi5maWxlLWxpc3QtaXRlbTpob3ZlciB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tc2lkZWJhci1ob3Zlci1iYWNrZ3JvdW5kKTtcbiAgICBjb2xvcjogdmFyKC0tc2lkZWJhci1ob3Zlci1jb2xvcik7XG59XG5cbi5maWxlLWxpc3QtaXRlbTpub3QoLmFjdGl2ZSkge1xuICAgIG9wYWNpdHk6IDE7XG59XG5cbi5maWxlLWxpc3QtaXRlbS5hY3RpdmUge1xuICAgIGJhY2tncm91bmQ6IHZhcigtLXNpZGViYXItYWN0aXZlLWJhY2tncm91bmQpO1xuICAgIGNvbG9yOiB2YXIoLS1zaWRlYmFyLWFjdGl2ZS1jb2xvcik7XG59XG5cbi5maWxlLWxpc3QtaXRlbS1maWxlLW5hbWUge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBtYXJnaW4tYm90dG9tOiA0cHg7XG59XG5cbi5hY3RpdmUgLmZpbGUtbGlzdC1pdGVtLWZpbGUtbmFtZSB7XG4gICAgcGFkZGluZy1yaWdodDogMjBweDtcbn1cblxuLmZpbGUtbGlzdC1pdGVtLWZpbGUtbmFtZS1wYXJ0IHtcbiAgICBmb250LXdlaWdodDogdmFyKC0tc3Ryb25nLWZvbnQtd2VpZ2h0KTtcbiAgICBjb2xvcjogdmFyKC0tc3Ryb25nLWNvbG9yKTtcbn1cblxuLyogU2VsZWN0aW9uIERvdCAqL1xuLmFjdGl2ZSAuZmlsZS1saXN0LWl0ZW0tZmlsZS1uYW1lOjphZnRlciB7XG4gICAgcmlnaHQ6IDhweDtcbn1cblxuLmZpbGUtbGlzdC1pdGVtLXN1bW1hcnkge1xuICAgIGhlaWdodDogYXV0bztcbiAgICBtYXgtaGVpZ2h0OiBjYWxjKDMgKiAwLjk1ZW0gKiB2YXIoLS1saW5lLWhlaWdodCkpO1xuICAgIGxpbmUtaGVpZ2h0OiBpbmhlcml0O1xuICAgIGZvbnQtc2l6ZTogdmFyKC0tZm9udC1zaXplLXVpLXMpO1xufVxuXG4uZmlsZS1saXN0LWl0ZW0tdGltZSB7XG4gICAgZm9udC1zaXplOiB2YXIoLS1mb250LXNpemUtdWktcyk7XG59XG5cbi8qIEZpbGVzIExpc3QgKi9cbi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG4uZmlsZS1saWJyYXJ5LWZpbGUtbm9kZTpub3QoLmFjdGl2ZSk6aG92ZXIge1xuICAgIGNvbG9yOiB2YXIoLS1zaWRlYmFyLWhvdmVyLWNvbG9yKTtcbn1cblxuLmZpbGUtbGlicmFyeS1maWxlLW5vZGU6bm90KC5hY3RpdmUpOmhvdmVyID4gLmZpbGUtbm9kZS1iYWNrZ3JvdW5kIHtcbiAgICBiYWNrZ3JvdW5kOiB2YXIoLS1zaWRlYmFyLWhvdmVyLWJhY2tncm91bmQpO1xufVxuXG4vKiBSZW1vdmUgZGFzaGVkIG91dGxpbmUgb24gbW91c2UtZG93bi4gKi9cbi8qIE5PVEU6IEJhZCBmb3Iga2V5Ym9hcmQgbmF2aWdhdGlvbiwgYnV0IHRoaXMgaXMgYnJva2VuIGluIFR5cG9yYSBhbHJlYWR5LiAqL1xuLmZpbGUtbGlicmFyeS1ub2RlOm5vdCguZmlsZS1ub2RlLXJvb3QpOmZvY3VzID4gLmZpbGUtbm9kZS1jb250ZW50IHtcbiAgICBvdXRsaW5lOiB1bnNldDtcbn1cblxuLmZpbGUtbm9kZS1jb250ZW50IHtcbiAgICBwYWRkaW5nLXJpZ2h0OiAwO1xufVxuXG4uZmlsZS1ub2RlLWNvbnRlbnQ6aG92ZXIge1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbn1cblxuLyogU2VsZWN0aW9uIERvdCAqL1xuLmFjdGl2ZSAuZmlsZS1ub2RlLWNvbnRlbnQ6OmFmdGVyIHtcbiAgICByaWdodDogMTRweDtcbn1cblxuLmZpbGUtbm9kZS1pY29uIHtcbiAgICBtYXJnaW4tcmlnaHQ6IDVweDtcbn1cblxuLmZpbGUtbm9kZS10aXRsZSB7XG4gICAgd2lkdGg6IGNhbGModmFyKC0tc2lkZWJhci13aWR0aCkgLSA0MHB4KTtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgIC8qIG91dGxpbmU6IDFweCBzb2xpZCByZWQ7ICovXG59XG5cbi5maWxlLW5vZGUtY2hpbGRyZW4gLmZpbGUtbm9kZS10aXRsZSB7XG4gICAgd2lkdGg6IGNhbGModmFyKC0tc2lkZWJhci13aWR0aCkgLSA4MHB4KTtcbiAgICAvKiBvdXRsaW5lOiAxcHggc29saWQgYmx1ZTsgKi9cbn1cblxuLmZpbGUtbm9kZS1jaGlsZHJlbiAuZmlsZS1ub2RlLWNoaWxkcmVuIC5maWxlLW5vZGUtdGl0bGUge1xuICAgIHdpZHRoOiBjYWxjKHZhcigtLXNpZGViYXItd2lkdGgpIC0gODhweCk7XG4gICAgLyogb3V0bGluZTogMXB4IHNvbGlkIGdyZWVuOyAqL1xufVxuXG4uZmlsZS1ub2RlLWNoaWxkcmVuIC5maWxlLW5vZGUtY2hpbGRyZW4gLmZpbGUtbm9kZS1jaGlsZHJlbiAuZmlsZS1ub2RlLXRpdGxlIHtcbiAgICB3aWR0aDogY2FsYyh2YXIoLS1zaWRlYmFyLXdpZHRoKSAtIDk2cHgpO1xuICAgIC8qIG91dGxpbmU6IDFweCBzb2xpZCBvcmFuZ2U7ICovXG59XG5cbi5hbGxvdy1maWxlLXRyZWUtc2Nyb2xsIC5maWxlLW5vZGUtdGl0bGUge1xuICAgIG92ZXJmbG93LXg6IGhpZGRlbjtcbn1cblxuLmZpbGUtdHJlZS1ub2RlIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG59XG5cbi5maWxlLXRyZWUtbm9kZS5hY3RpdmUgPiAuZmlsZS1ub2RlLWJhY2tncm91bmQge1xuICAgIGJvcmRlcjogMDtcbn1cblxuLmZpbGUtdHJlZS1ub2RlLmFjdGl2ZSA+IC5maWxlLW5vZGUtYmFja2dyb3VuZCB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tc2lkZWJhci1hY3RpdmUtYmFja2dyb3VuZCk7XG59XG5cbi5maWxlLXRyZWUtbm9kZS5hY3RpdmUgPiAuZmlsZS1ub2RlLWNvbnRlbnQge1xuICAgIGNvbG9yOiB2YXIoLS1zaWRlYmFyLWFjdGl2ZS1jb2xvcik7XG59XG5cbi5maWxlLW5vZGUtYmFja2dyb3VuZCB7XG4gICAgdG9wOiAwO1xuICAgIGJvdHRvbTogMDtcbiAgICByaWdodDogLTRweDtcbiAgICBsZWZ0OiAtMTAwcHg7XG4gICAgaGVpZ2h0OiBhdXRvO1xuICAgIHdpZHRoOiBhdXRvO1xufVxuXG4vKiBTZWFyY2ggKi9cbi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG4jc2lkZWJhci1zZWFyY2gtYnRuLFxuI3R5LXNpZGViYXItc2VhcmNoLWJhY2stYnRuIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgbWFyZ2luOiAwO1xufVxuXG4jdHktc2lkZWJhci1zZWFyY2gtdGFicyAuc2VhcmNocGFuZWwtc2VhcmNoLW9wdGlvbi1idG4ge1xuICAgIHRvcDogMWVtO1xuICAgIHBhZGRpbmc6IDNweCAxcHg7XG4gICAgYmFja2dyb3VuZDogdmFyKC0tYnRuLXRvZ2dsZS1iYWNrZ3JvdW5kKTtcbiAgICBjb2xvcjogdmFyKC0tYnRuLXRvZ2dsZS1jb2xvcik7XG4gICAgb3BhY2l0eTogMTtcbn1cblxuI3R5LXNpZGViYXItc2VhcmNoLXRhYnMgLnNlYXJjaHBhbmVsLXNlYXJjaC1vcHRpb24tYnRuOmhvdmVyIHtcbiAgICBiYWNrZ3JvdW5kOiB2YXIoLS1idG4tdG9nZ2xlLWhvdmVyLWJhY2tncm91bmQpO1xuICAgIGNvbG9yOiB2YXIoLS1idG4tdG9nZ2xlLWhvdmVyLWNvbG9yKTtcbn1cblxuI3R5LXNpZGViYXItc2VhcmNoLXRhYnMgLnNlYXJjaHBhbmVsLXNlYXJjaC1vcHRpb24tYnRuLnNlbGVjdCB7XG4gICAgYmFja2dyb3VuZDogdmFyKC0tYnRuLXRvZ2dsZS1hY3RpdmUtYmFja2dyb3VuZCk7XG4gICAgY29sb3I6IHZhcigtLWJ0bi10b2dnbGUtYWN0aXZlLWNvbG9yKTtcbn1cblxuI2ZpbGVzZWFyY2gtY2FzZS1vcHRpb24tYnRuIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLThweCk7XG59XG5cbiNmaWxlc2VhcmNoLXdvcmQtb3B0aW9uLWJ0biB7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC00cHgpO1xufVxuXG4udHktc2hvdy1vdXRsaW5lLWZpbHRlciAjZmlsZS1saWJyYXJ5LXNlYXJjaCxcbi50eS1zaG93LXNlYXJjaCAjZmlsZS1saWJyYXJ5LXNlYXJjaCB7XG4gICAgaGVpZ2h0OiBjYWxjKDJlbSArIDMycHgpO1xufVxuXG4jZmlsZS1saWJyYXJ5LXNlYXJjaC1pbnB1dCB7XG4gICAgaGVpZ2h0OiBhdXRvO1xuICAgIHBhZGRpbmc6IDAuNWVtIDAuNzVlbTtcbiAgICBib3JkZXI6IDFweCBzb2xpZCBjdXJyZW50Q29sb3I7XG4gICAgYm9yZGVyLWNvbG9yOiB2YXIoLS1zaWRlYmFyLWJvcmRlci1jb2xvcik7XG4gICAgYm9yZGVyLXJhZGl1czogdmFyKC0tYm9yZGVyLXJhZGl1cy1zKTtcbiAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgICBjb2xvcjogaW5oZXJpdDtcbn1cblxuI2ZpbGUtbGlicmFyeS1zZWFyY2gtaW5wdXQ6bm90KDpwbGFjZWhvbGRlci1zaG93biksXG4jZmlsZS1saWJyYXJ5LXNlYXJjaC1pbnB1dDpmb2N1cyB7XG4gICAgYm9yZGVyLWNvbG9yOiB2YXIoLS1pbnB1dC1mb2N1cy1jb2xvcik7XG4gICAgYmFja2dyb3VuZDogdmFyKC0taW5wdXQtYmFja2dyb3VuZCk7XG4gICAgY29sb3I6IHZhcigtLWlucHV0LWNvbG9yKTtcbn1cblxuLnR5LXNlYXJjaC1pdGVtIHtcbiAgICBib3JkZXItYm90dG9tOiB2YXIoLS1zaWRlYmFyLWJvcmRlci13aWR0aCkgc29saWQgdmFyKC0tc2lkZWJhci1ib3JkZXItY29sb3IpO1xufVxuXG4uZmlsZS1saXN0LWl0ZW0tY291bnQge1xuICAgIC0tc2l6ZTogMS42NWVtO1xuXG4gICAgaGVpZ2h0OiB2YXIoLS1zaXplKTtcbiAgICBtaW4td2lkdGg6IHZhcigtLXNpemUpO1xuICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jb2xvci1zdGF0dXMpO1xuICAgIGNvbG9yOiB2YXIoLS1jb2xvci1zdGF0dXMtY29udGVudCk7XG4gICAgZm9udC1zaXplOiB2YXIoLS1mb250LXNpemUtdWktcyk7XG4gICAgZm9udC13ZWlnaHQ6IHZhcigtLXN0cm9uZy1mb250LXdlaWdodCk7XG4gICAgbGluZS1oZWlnaHQ6IHZhcigtLXNpemUpO1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbn1cblxuLyogRm9vdGVyIE1lbnUgKi9cbi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG4jc2lkZWJhci1maWxlcy1tZW51IHtcbiAgICBib3JkZXItY29sb3I6IHZhcigtLWJvcmRlci1jb2xvcik7XG4gICAgYmFja2dyb3VuZDogdmFyKC0tbWVudS1iYWNrZ3JvdW5kKTtcbn1cblxuI3R5LXNpZGViYXItZm9vdGVyIHtcbiAgICBib3JkZXItY29sb3I6IHZhcigtLXNpZGViYXItYm9yZGVyLWNvbG9yKTtcbn1cblxuI3NpZGViYXItZmlsZXMtbWVudSA+IC5zaG93ICsgLm1lbnVpdGVtLWdyb3VwLWxhYmVsLnNob3cge1xuICAgIGJvcmRlci1jb2xvcjogdmFyKC0tYm9yZGVyLWNvbG9yKTtcbn1cblxuLnNpZGViYXItZm9vdGVyLWl0ZW06aG92ZXIge1xuICAgIGJhY2tncm91bmQ6IHZhcigtLXNpZGViYXItaG92ZXItYmFja2dyb3VuZCk7XG4gICAgY29sb3I6IHZhcigtLXNpZGViYXItaG92ZXItY29sb3IpO1xufVxuXG4jc2lkZWJhci1maWxlcy1tZW51IC5mb2xkZXItbWVudS1pdGVtIGkge1xuICAgIG1hcmdpbi1yaWdodDogNnB4O1xufVxuXG4ubWVudWl0ZW0tZ3JvdXAtbGFiZWwubm90LWVtcHR5LW1lbnUtZ3JvdXAge1xuICAgIGRpc3BsYXk6IGZsZXggIWltcG9ydGFudDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2Vlbjtcbn1cblxuLm1lbnVpdGVtLWdyb3VwLWxhYmVsLm5vdC1lbXB0eS1tZW51LWdyb3VwID4gLmNsZWFyZml4IHtcbiAgICBkaXNwbGF5OiBub25lO1xufVxuXG4jc2lkZWJhci1maWxlcy1tZW51IC5zZWxlY3RlZC1mb2xkZXItbWVudS1pdGVtIGE6OmFmdGVyIHtcbiAgICBjb250ZW50OiBcIlwiO1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IGNhbGMoNTAlIC0gNHB4KTtcbiAgICByaWdodDogOHB4O1xuICAgIHdpZHRoOiA4cHg7XG4gICAgaGVpZ2h0OiA4cHg7XG4gICAgYm9yZGVyLXJhZGl1czogNTAlO1xuICAgIGJhY2tncm91bmQ6IHZhcigtLWNvbG9yLXByaW1hcnkpO1xufVxuXG4jc2lkZWJhci1maWxlcy1tZW51IC50eS1zaWRlLXNvcnQtYnRuIHtcbiAgICAtLXNpemU6IDI0cHg7XG5cbiAgICB3aWR0aDogdmFyKC0tc2l6ZSk7XG4gICAgaGVpZ2h0OiB2YXIoLS1zaXplKTtcbiAgICBtYXJnaW4tdG9wOiA2cHg7XG4gICAgbWFyZ2luLWJvdHRvbTogNnB4O1xuICAgIGJvcmRlci1yYWRpdXM6IHZhcigtLWJvcmRlci1yYWRpdXMtcyk7XG4gICAgYmFja2dyb3VuZDogdmFyKC0tYnRuLXRvZ2dsZS1iYWNrZ3JvdW5kKTtcbiAgICBjb2xvcjogdmFyKC0tYnRuLXRvZ2dsZS1jb2xvcik7XG4gICAgZm9udC1zaXplOiAxM3B4O1xuICAgIGxpbmUtaGVpZ2h0OiB2YXIoLS1zaXplKTtcbiAgICBvcGFjaXR5OiAxO1xufVxuXG4jc2lkZWJhci1maWxlcy1tZW51IC50eS1zaWRlLXNvcnQtYnRuOmhvdmVyIHtcbiAgICBiYWNrZ3JvdW5kOiB2YXIoLS1idG4tdG9nZ2xlLWhvdmVyLWJhY2tncm91bmQpO1xuICAgIGNvbG9yOiB2YXIoLS1idG4tdG9nZ2xlLWhvdmVyLWNvbG9yKTtcbn1cblxuI3NpZGViYXItZmlsZXMtbWVudSAudHktc2lkZS1zb3J0LWJ0bi5hY3RpdmUge1xuICAgIGJhY2tncm91bmQ6IHZhcigtLWJ0bi10b2dnbGUtYWN0aXZlLWJhY2tncm91bmQpO1xuICAgIGNvbG9yOiB2YXIoLS1idG4tdG9nZ2xlLWFjdGl2ZS1jb2xvcik7XG59XG4iLCIvKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLyogT3V0bGluZSBQb3BvdmVyXG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuI3RvYy1kcm9wbWVudSB7XG4gICAgcmlnaHQ6IDA7XG4gICAgYm9yZGVyLXdpZHRoOiB2YXIoLS1zaWRlYmFyLWJvcmRlci13aWR0aCkgMCB2YXIoLS1zaWRlYmFyLWJvcmRlci13aWR0aCkgdmFyKC0tc2lkZWJhci1ib3JkZXItd2lkdGgpO1xuICAgIGJvcmRlci1jb2xvcjogdmFyKC0tc2lkZWJhci1ib3JkZXItY29sb3IpO1xuICAgIGJvcmRlci1yYWRpdXM6IHZhcigtLWJvcmRlci1yYWRpdXMpIDAgMCB2YXIoLS1ib3JkZXItcmFkaXVzKTtcbiAgICBiYWNrZ3JvdW5kOiB2YXIoLS1zaWRlYmFyLWJhY2tncm91bmQpO1xuICAgIGNvbG9yOiB2YXIoLS1zaWRlYmFyLWNvbG9yKTtcbiAgICBib3gtc2hhZG93OiBub25lO1xuICAgIGZpbHRlcjogdmFyKC0tZHJvcC1zaGFkb3cpO1xufVxuXG4jdG9jLWRyb3BtZW51Lm9wZW4ge1xuICAgIGFuaW1hdGlvbjogdG9jLWluLWZyb20tcmlnaHQgLjNzIGVhc2UtaW47XG59XG5cbiN0b2MtZHJvcG1lbnUgLmJ0biB7XG4gICAgY29sb3I6IGluaGVyaXQ7XG59XG5cbiN0b2MtZHJvcG1lbnUgLmRpdmlkZXIge1xuICAgIG1hcmdpbjogNXB4IDA7XG4gICAgYm9yZGVyLXRvcDogdmFyKC0tc2lkZWJhci1ib3JkZXItd2lkdGgpIHNvbGlkIHZhcigtLXNpZGViYXItYm9yZGVyLWNvbG9yKTtcbiAgICBvcGFjaXR5OiAxO1xufVxuXG4jdG9jLWRyb3BtZW51IC5vdXRsaW5lLXRpdGxlLXdyYXBwZXIge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG59XG5cbkBrZXlmcmFtZXMgdG9jLWluLWZyb20tcmlnaHQge1xuICAgIDAlIHtcbiAgICAgICAgb3BhY2l0eTogMDtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDIwJSlcbiAgICB9XG5cbiAgICAxMDAlIHtcbiAgICAgICAgb3BhY2l0eTogMTtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDApXG4gICAgfVxufVxuIiwiLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi8qIE1hcmtkb3duXG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLyogQnV0dG9uIEljb25zICovXG5idXR0b24uYnRuIC50eS1pY29uIHtcbiAgICBmb250LXNpemU6IDEzcHg7IC8qIEljb25zICovXG59XG5cbi8qIEZvb3Rub3RlcyAqL1xuLmZvb3Rub3RlcyB7XG4gICAgb3BhY2l0eTogMTtcbiAgICBmb250LXNpemU6IHZhcigtLWZvbnQtc2l6ZS1zKTtcbn1cblxuLm1kLXAge1xuICAgIC8qIEZvb3Rub3RlIGN1cnNvciBmaXggIzEgKi9cbiAgICB6LWluZGV4OiAwO1xufVxuXG4ubWQtZm9vdG5vdGUge1xuICAgIC8qIEZvb3Rub3RlIGN1cnNvciBmaXggIzIgKi9cbiAgICB6LWluZGV4OiAtMTtcbn1cblxuc3VwLm1kLWZvb3Rub3RlIHtcbiAgICBwYWRkaW5nOiAwLjFlbSAwLjI1ZW0gMC4yZW0gMC4yNWVtO1xuICAgIGJvcmRlci1yYWRpdXM6IHZhcigtLWJvcmRlci1yYWRpdXMtcyk7XG4gICAgYmFja2dyb3VuZDogdmFyKC0tY29kZS1pbmxpbmUtYmFja2dyb3VuZCk7XG4gICAgY29sb3I6IHZhcigtLWNvZGUtaW5saW5lLWNvbG9yKTtcbiAgICBsaW5lLWhlaWdodDogMTtcbn1cblxuLyogRm9vdG5vdGUgQnJhY2tldHMgKi9cbi5tZC1kZWYtbmFtZTo6YmVmb3JlLFxuLm1kLWRlZi1uYW1lOjphZnRlcixcbi5tZC1kZWYtdGl0bGU6OmJlZm9yZSxcbi5tZC1kZWYtdGl0bGU6OmFmdGVyLFxuLyogTGluayBCcmFja2V0cyAqL1xuLm1kLWxpbmsgLm1kLW1ldGEubWQtYmVmb3JlLFxuLm1kLWxpbmsgLm1kLW1ldGEubWQtYWZ0ZXIge1xuICAgIGNvbG9yOiB2YXIoLS1tZC1icmFja2V0cyk7XG59XG5cbi8qIEZvb3Rub3RlICYgTGluayBCcmFja2V0ICovXG4ubWQtZm9vdG5vdGUgLm1kLW1ldGEubWQtYmVmb3JlLFxuLm1kLWxpbmsgLm1kLW1ldGEubWQtYmVmb3JlIHtcbiAgICBtYXJnaW4tcmlnaHQ6IDAuMTVlbTtcbn1cblxuLyogRm9vdG5vdGUgJiBMaW5rIEJyYWNrZXQgKi9cbi5tZC1mb290bm90ZSAubWQtbWV0YS5tZC1hZnRlcixcbi5tZC1saW5rIC5tZC1tZXRhLm1kLWJlZm9yZSB+IC5tZC1tZXRhLm1kLWJlZm9yZSxcbi5tZC1saW5rIC5tZC1tZXRhLm1kLWFmdGVyIHtcbiAgICBtYXJnaW4tbGVmdDogMC4xNWVtO1xufVxuXG4vKiBGb290bm90ZSAmIExpbmsgTmFtZSAqL1xuLm1kLWRlZi1uYW1lIHtcbiAgICBmb250LXdlaWdodDogdmFyKC0tc3Ryb25nLWZvbnQtd2VpZ2h0KTtcbiAgICBjb2xvcjogdmFyKC0tc3Ryb25nLWNvbG9yKTtcbn1cblxuLyogSFRNTCB0YWdzIChhbHdheXMgdmlzaWJsZSkgKi9cbi5tZC1icixcbi5tZC1ici1jb250ZW50LFxuLm1kLWNvbW1lbnQge1xuICAgIG9wYWNpdHk6IDE7XG4gICAgY29sb3I6IHZhcigtLW1kLXRhZ3MpO1xufVxuXG4vKiBIb3Jpem9udGFsIFJ1bGVzICovXG4ubWQtaHIge1xuICAgIG1hcmdpbjogM3JlbSAwO1xufVxuXG4vKiBJbWFnZXMgKi9cbi5tZC1pbWFnZSA+IC5tZC1tZXRhIHtcbiAgICBjb2xvcjogaW5oZXJpdDtcbiAgICBmb250LWZhbWlseTogdmFyKC0tZm9udC1mYW1pbHktdWkpO1xufVxuXG4vKiBJbWFnZSBJY29uICovXG4ubWQtaW1hZ2UgPiAubWQtbWV0YTo6YmVmb3JlLFxuLyogSFRNTCB0YWdzICovXG4ubWQtcmF3LWlubGluZTpub3QoLm1kLWJyLWNvbnRlbnQpIHtcbiAgICBvcGFjaXR5OiAxICFpbXBvcnRhbnQ7XG4gICAgY29sb3I6IHZhcigtLW1kLXRhZ3MtZXhwYW5kZWQpO1xufVxuXG4vKiBVUkxzICovXG4ubWQtdXJsLFxuLm1kLWRlZi11cmwge1xuICAgIGNvbG9yOiB2YXIoLS1saW5rLWNvbG9yKTtcbn1cbiIsIi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4vKiBIZWFkaW5nc1xuLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbjppcyhoMSwgaDIsIGgzLCBoNCwgaDUsIGg2KSB7XG4gICAgbWFyZ2luLXRvcDogMS41cmVtO1xuICAgIG1hcmdpbi1ib3R0b206IDFyZW07XG4gICAgY29sb3I6IHZhcigtLWhlYWRpbmctY29sb3IpO1xuICAgIGZvbnQtd2VpZ2h0OiB2YXIoLS1oZWFkaW5nLWZvbnQtd2VpZ2h0KTtcbn1cblxuOmlzKGgxLCBoMiwgaDMsIGg0LCBoNSwgaDYpLm1kLWhlYWRpbmc6OmJlZm9yZSB7XG4gICAgYWxsOiB1bnNldDtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiA1MCU7XG4gICAgcmlnaHQ6IGNhbGMoMTAwJSArIDAuNWVtKTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgwLCAtNTAlKTtcbiAgICBmb250LXNpemU6IDAuNzVyZW07XG4gICAgbGV0dGVyLXNwYWNpbmc6IG5vcm1hbDtcbiAgICBjb2xvcjogdmFyKC0tbWQtYnJhY2tldHMpO1xuICAgIG9wYWNpdHk6IDA7XG4gICAgdHJhbnNpdGlvbjogYWxsIDAuMnMgMHM7XG59XG5cbjppcyhoMSwgaDIsIGgzLCBoNCwgaDUsIGg2KS5tZC1mb2N1czo6YmVmb3JlIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtMC41ZW0sIC01MCUpO1xuICAgIG9wYWNpdHk6IDE7XG59XG5cbmgxIHtcbiAgICBtYXJnaW4tdG9wOiAzcmVtO1xuICAgIGZvbnQtc2l6ZTogdmFyKC0taDEtZm9udC1zaXplKTtcbiAgICBsaW5lLWhlaWdodDogMS4xO1xuICAgIGxldHRlci1zcGFjaW5nOiB2YXIoLS1oMS1sZXR0ZXItc3BhY2luZyk7XG59XG5cbmgxLm1kLWhlYWRpbmc6OmJlZm9yZSB7XG4gICAgY29udGVudDogJ0gxJztcbn1cblxuaDIge1xuICAgIG1hcmdpbi10b3A6IDJyZW07XG4gICAgZm9udC1zaXplOiB2YXIoLS1oMi1mb250LXNpemUpO1xuICAgIGxpbmUtaGVpZ2h0OiAxLjI7XG4gICAgbGV0dGVyLXNwYWNpbmc6IHZhcigtLWgyLWxldHRlci1zcGFjaW5nKTtcbn1cblxuaDIubWQtaGVhZGluZzo6YmVmb3JlIHtcbiAgICBjb250ZW50OiAnSDInO1xufVxuXG5oMyB7XG4gICAgZm9udC1zaXplOiB2YXIoLS1oMy1mb250LXNpemUpO1xuICAgIGxpbmUtaGVpZ2h0OiAxLjM7XG4gICAgbGV0dGVyLXNwYWNpbmc6IHZhcigtLWgzLWxldHRlci1zcGFjaW5nKTtcbn1cblxuaDMubWQtaGVhZGluZzo6YmVmb3JlIHtcbiAgICBjb250ZW50OiAnSDMnO1xufVxuXG5oNCB7XG4gICAgZm9udC1zaXplOiB2YXIoLS1oNC1mb250LXNpemUpO1xufVxuXG5oNC5tZC1oZWFkaW5nOjpiZWZvcmUge1xuICAgIGNvbnRlbnQ6ICdINCc7XG59XG5cbmg1IHtcbiAgICBmb250LXNpemU6IHZhcigtLWg1LWZvbnQtc2l6ZSk7XG59XG5cbmg1Lm1kLWhlYWRpbmc6OmJlZm9yZSB7XG4gICAgY29udGVudDogJ0g1Jztcbn1cblxuaDYge1xuICAgIGZvbnQtc2l6ZTogdmFyKC0taDYtZm9udC1zaXplKTtcbn1cblxuaDYubWQtaGVhZGluZzo6YmVmb3JlIHtcbiAgICBjb250ZW50OiAnSDYnO1xufVxuXG5oNiB+IDpub3QoaDEsIGgyLCBoMywgaDQsIGg1LCBoNikge1xuICAgIGZvbnQtc2l6ZTogdmFyKC0taDYtZm9udC1zaXplKTtcbn1cblxuaDYgfiA6aXMoaDEsIGgyLCBoMywgaDQsIGg1LCBoNikgfiAqOm5vdChoMSwgaDIsIGgzLCBoNCwgaDUsIGg2KSB7XG4gICAgZm9udC1zaXplOiBpbmhlcml0O1xufVxuIiwiLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi8qIExpc3RzXG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xub2wsXG51bCB7XG4gICAgcGFkZGluZy1sZWZ0OiAxLjVyZW07XG59XG5cbm9sIHtcbiAgICBtYXJnaW4tbGVmdDogMC4yNXJlbTtcbiAgICBsaXN0LXN0eWxlLXR5cGU6IGRlY2ltYWw7XG59XG5cbnVsIHtcbiAgICBsaXN0LXN0eWxlLXR5cGU6IGRpc2M7XG59XG5cbjppcyhvbCwgdWwpIDppcyhvbCwgdWwpIHtcbiAgICBtYXJnaW4tdG9wOiAwLjc1cmVtO1xuICAgIG1hcmdpbi1ib3R0b206IDAuNzVyZW07XG59XG5cbm9sID4gbGk6Om1hcmtlciB7XG4gICAgY29sb3I6IHZhcigtLWNvdW50ZXItY29sb3IpO1xufVxuXG51bCA+IGxpOjptYXJrZXIge1xuICAgIGNvbG9yOiB2YXIoLS1tYXJrZXItY29sb3IpO1xufVxuXG4vKiBUYXNrIExpc3RzICovXG4vKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuI3dyaXRlIGxpLnRhc2stbGlzdC1pdGVtIHtcbiAgICBwYWRkaW5nLWxlZnQ6IDAuNzVlbTtcbn1cblxuaW5wdXRbY2hlY2tlZF0gKyAqIHtcbiAgICBvcGFjaXR5OiAwLjY7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiBsaW5lLXRocm91Z2g7XG59XG5cbiN3cml0ZSBpbnB1dFt0eXBlPWNoZWNrYm94XSxcbmxpLnRhc2stbGlzdC1pdGVtID4gaW5wdXRbdHlwZT1jaGVja2JveF0ge1xuICAgIGFwcGVhcmFuY2U6IG5vbmU7XG4gICAgd2lkdGg6IHZhcigtLWNoZWNrYm94LXNpemUpO1xuICAgIGhlaWdodDogdmFyKC0tY2hlY2tib3gtc2l6ZSk7XG4gICAgcGFkZGluZzogMDtcbiAgICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1jaGVja2JveC1ib3JkZXItY29sb3IpO1xuICAgIGJvcmRlci1yYWRpdXM6IHZhcigtLWNoZWNrYm94LWJvcmRlci1yYWRpdXMpO1xuICAgIGJhY2tncm91bmQ6IHZhcigtLWNoZWNrYm94LWJhY2tncm91bmQpO1xufVxuXG4jd3JpdGUgaW5wdXRbdHlwZT1jaGVja2JveF1bY2hlY2tlZF0ge1xuICAgIGJvcmRlci1jb2xvcjogdmFyKC0tY29sb3ItcHJpbWFyeSk7XG4gICAgYmFja2dyb3VuZDogdmFyKC0tY29sb3ItcHJpbWFyeSk7XG59XG5cbiN3cml0ZSBpbnB1dFt0eXBlPWNoZWNrYm94XVtjaGVja2VkXTo6YWZ0ZXIge1xuICAgIGNvbnRlbnQ6ICcnO1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICBsZWZ0OiA1MCU7XG4gICAgdG9wOiBjYWxjKDUwJSAtIDAuMDVlbSk7XG4gICAgaGVpZ2h0OiBjYWxjKHZhcigtLWNoZWNrYm94LXNpemUpICogMC41Mik7XG4gICAgd2lkdGg6IGNhbGModmFyKC0tY2hlY2tib3gtc2l6ZSkgKiAwLjMxMjUpO1xuICAgIGJvcmRlci13aWR0aDogMCAycHggMnB4IDA7XG4gICAgYm9yZGVyLWNvbG9yOiB2YXIoLS1jaGVja2JveC1jaGVjay1jb2xvcik7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSwgLTUwJSkgcm90YXRlKDQwZGVnKTtcbn1cblxubGkudGFzay1saXN0LWl0ZW0gPiBpbnB1dFt0eXBlPWNoZWNrYm94XSB7XG4gICAgdG9wOiBjYWxjKCgoMWVtICogdmFyKC0tbGluZS1oZWlnaHQpKSAvIDIpIC0gKHZhcigtLWNoZWNrYm94LXNpemUpIC8gMikpO1xuICAgIGxlZnQ6IGNhbGMoMHB4IC0gdmFyKC0tY2hlY2tib3gtc2l6ZSkpO1xuICAgIG1hcmdpbjogMDtcbn1cbiIsIi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4vKiBDb2RlXG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLyogWUFNTCBGcm9udCBNYXR0ZXIgKi9cbi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG4jd3JpdGUgcHJlLm1kLW1ldGEtYmxvY2s6Zmlyc3QtY2hpbGQge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBvdmVyZmxvdzogdmlzaWJsZTtcbiAgICBtYXJnaW4tYm90dG9tOiAyLjVyZW07XG4gICAgcGFkZGluZzogdmFyKC0tY29kZS1wYWRkaW5nLXRiKSB2YXIoLS1jb2RlLXBhZGRpbmctbHIpO1xuICAgIGJvcmRlci1yYWRpdXM6IHZhcigtLWJvcmRlci1yYWRpdXMpO1xuICAgIGJhY2tncm91bmQ6IHZhcigtLWNvZGUtYmFja2dyb3VuZCk7XG4gICAgY29sb3I6IHZhcigtLWNvZGUtdGV4dC1jb2xvcik7XG4gICAgZm9udC1zaXplOiB2YXIoLS1mb250LXNpemUtbW9ubyk7XG4gICAgZm9udC13ZWlnaHQ6IHZhcigtLWZvbnQtd2VpZ2h0LW1vbm8pO1xufVxuXG4jd3JpdGUgcHJlLm1kLW1ldGEtYmxvY2s6Zmlyc3QtY2hpbGQ6OmFmdGVyIHtcbiAgICBjb250ZW50OiAnWUFNTCBGcm9udCBNYXR0ZXInO1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB6LWluZGV4OiAxO1xuICAgIGluc2V0OiBhdXRvIHZhcigtLWNvZGUtcGFkZGluZy1scikgMTAwJSBhdXRvO1xuICAgIHBhZGRpbmc6IDAgMWVtO1xuICAgIGJvcmRlci1yYWRpdXM6IHZhcigtLWJvcmRlci1yYWRpdXMtcyk7XG4gICAgYmFja2dyb3VuZDogdmFyKC0tY29kZS1sYW5ndWFnZS1iYWNrZ3JvdW5kKTtcbiAgICBjb2xvcjogdmFyKC0tY29kZS1sYW5ndWFnZS1jb2xvcik7XG4gICAgZm9udC1zaXplOiB2YXIoLS1mb250LXNpemUtcyk7XG4gICAgbGluZS1oZWlnaHQ6IGNhbGModmFyKC0tZm9udC1zaXplLW1vbm8pICogdmFyKC0tbGluZS1oZWlnaHQpKTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoNTAlKTtcbn1cblxuI3dyaXRlIHByZS5tZC1tZXRhLWJsb2NrOmZpcnN0LWNoaWxkOmVtcHR5IHtcbiAgICBsaW5lLWhlaWdodDogMS4xNTtcbn1cblxuI3dyaXRlIHByZS5tZC1tZXRhLWJsb2NrOmZpcnN0LWNoaWxkOmVtcHR5OjpiZWZvcmUge1xuICAgIGNvbnRlbnQ6ICdJbnNlcnQgWUFNTCBmcm9udCBtYXR0ZXIgaGVyZS4uLic7XG4gICAgY29sb3I6IHZhcigtLWNvZGUtY29tbWVudC1jb2xvcik7XG59XG5cbi8qIElubGluZSAqL1xuLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cblttZC1pbmxpbmU9XCJjb2RlXCJdIHtcbiAgICBwYWRkaW5nOiAwLjFlbSAwLjM1ZW07XG4gICAgYm9yZGVyLXJhZGl1czogdmFyKC0tYm9yZGVyLXJhZGl1cy1zKTtcbiAgICBiYWNrZ3JvdW5kOiB2YXIoLS1jb2RlLWlubGluZS1iYWNrZ3JvdW5kKTtcbiAgICBjb2xvcjogdmFyKC0tY29kZS1pbmxpbmUtY29sb3IpO1xufVxuXG4vKiBGZW5jZXMgKi9cbi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG4ubWQtZmVuY2VzIHtcbiAgICBtYXJnaW46IDJyZW0gMDtcbiAgICBiYWNrZ3JvdW5kOiBub25lO1xufVxuXG4vKiBDb2RlTWlycm9yICovXG4vKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuI3R5cG9yYS1zb3VyY2UgLkNvZGVNaXJyb3ItbGluZXMge1xuICAgIG1heC13aWR0aDogdmFyKC0tbWF4LXdpZHRoKTtcbn1cblxuI3R5cG9yYS1zb3VyY2UgLkNvZGVNaXJyb3ItbGluZSxcbiN3cml0ZSAuQ29kZU1pcnJvciB7XG4gICAgZm9udC1mYW1pbHk6IHZhcigtLWZvbnQtZmFtaWx5LW1vbm8pO1xuICAgIGZvbnQtc2l6ZTogdmFyKC0tZm9udC1zaXplLW1vbm8pO1xuICAgIGZvbnQtd2VpZ2h0OiB2YXIoLS1mb250LXdlaWdodC1tb25vKTtcbiAgICBjb2xvcjogdmFyKC0tY29kZS10ZXh0LWNvbG9yKSAhaW1wb3J0YW50O1xufVxuXG4jd3JpdGUgLmNtLXMtaW5uZXIsXG4jd3JpdGUgLkNvZGVNaXJyb3Itc2Nyb2xsLFxuLm1kLXJhd2Jsb2NrLWNvbnRhaW5lciB7XG4gICAgYm9yZGVyLXJhZGl1czogdmFyKC0tYm9yZGVyLXJhZGl1cyk7XG59XG5cbiN3cml0ZSAuY20tcy1pbm5lciB7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICBiYWNrZ3JvdW5kOiB2YXIoLS1jb2RlLWJhY2tncm91bmQpO1xufVxuXG4jd3JpdGUgLkNvZGVNaXJyb3ItbGluZXMge1xuICAgIHBhZGRpbmc6IHZhcigtLWNvZGUtcGFkZGluZy10YikgdmFyKC0tY29kZS1wYWRkaW5nLWxyKTtcbn1cblxuI3dyaXRlIC5Db2RlTWlycm9yLWd1dHRlcnMge1xuICAgIGJvcmRlci1jb2xvcjogdmFyKC0tY29kZS1ndXR0ZXItYm9yZGVyLWNvbG9yKTtcbiAgICBiYWNrZ3JvdW5kOiB2YXIoLS1jb2RlLWJhY2tncm91bmQpO1xufVxuXG4uQ29kZU1pcnJvci1saW5lbnVtYmVyIHtcbiAgICBtYXJnaW4tbGVmdDogY2FsYygwcHggLSB2YXIoLS1jb2RlLXBhZGRpbmctbHIpKTtcbiAgICBtaW4td2lkdGg6IDIuMjVlbTtcbn1cblxuI3dyaXRlIC5Db2RlTWlycm9yLXNjcm9sbCB7XG4gICAgY3Vyc29yOiBhdXRvO1xufVxuXG46aXMoI3dyaXRlLCAjdHlwb3JhLXNvdXJjZSkgLkNvZGVNaXJyb3ItY3Vyc29yIHtcbiAgICBib3JkZXItbGVmdDogdmFyKC0tY29kZS1jdXJzb3ItYm9yZGVyKTtcbn1cblxuOmlzKCN3cml0ZSwgI3R5cG9yYS1zb3VyY2UpIC5Db2RlTWlycm9yLWZvY3VzZWQgLkNvZGVNaXJyb3ItYWN0aXZlbGluZTpub3QoOm9ubHktY2hpbGQpIC5Db2RlTWlycm9yLWFjdGl2ZWxpbmUtYmFja2dyb3VuZCB7XG4gICAgYm9yZGVyLXJhZGl1czogdmFyKC0tYm9yZGVyLXJhZGl1cy1zKTtcbiAgICBiYWNrZ3JvdW5kOiB2YXIoLS1jb2RlLWFjdGl2ZWxpbmUtYmFja2dyb3VuZCk7XG59XG5cbjppcygjd3JpdGUsICN0eXBvcmEtc291cmNlKSAuQ29kZU1pcnJvci1saW5lbnVtYmVyIHtcbiAgICBjb2xvcjogdmFyKC0tY29kZS1saW5lbnVtYmVyLWNvbG9yKTtcbn1cblxuOmlzKCN3cml0ZSwgI3R5cG9yYS1zb3VyY2UpIC5Db2RlTWlycm9yLXNlbGVjdGVkOm5vdCguY20tc2VhcmNoLWhpdCksXG46aXMoI3dyaXRlLCAjdHlwb3JhLXNvdXJjZSkgLkNvZGVNaXJyb3Itc2VsZWN0ZWR0ZXh0Om5vdCguY20tc2VhcmNoLWhpdCkge1xuICAgIGJhY2tncm91bmQ6IHZhcigtLWNvZGUtc2VsZWN0ZWQtYmFja2dyb3VuZCkgIWltcG9ydGFudDtcbn1cblxuLyogU3ludGF4IEhpZ2hsaWdodGluZyAqL1xuLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cbiN0eXBvcmEtc291cmNlIC5jbS1hdG9tIHtcbiAgICBjb2xvcjogaW5oZXJpdCAhaW1wb3J0YW50O1xufVxuXG4jd3JpdGUgLmNtLWF0b20ge1xuICAgIGNvbG9yOiB2YXIoLS1jb2RlLWF0b20tY29sb3IpICFpbXBvcnRhbnQ7XG59XG5cbjppcygjd3JpdGUsICN0eXBvcmEtc291cmNlKSAuY20tYXR0cmlidXRlIHtcbiAgICBjb2xvcjogdmFyKC0tY29kZS1hdHRyaWJ1dGUtY29sb3IpICFpbXBvcnRhbnQ7XG59XG5cbjppcygjd3JpdGUsICN0eXBvcmEtc291cmNlKSAuY20tYnVpbHRpbiB7XG4gICAgY29sb3I6IHZhcigtLWNvZGUtYnVpbHRpbi1jb2xvcikgIWltcG9ydGFudDtcbn1cblxuOmlzKCN3cml0ZSwgI3R5cG9yYS1zb3VyY2UpIC5jbS1jb21tZW50IHtcbiAgICBjb2xvcjogdmFyKC0tY29kZS1jb21tZW50LWNvbG9yKSAhaW1wb3J0YW50O1xuICAgIG9wYWNpdHk6IDEgIWltcG9ydGFudDtcbn1cblxuOmlzKCN3cml0ZSwgI3R5cG9yYS1zb3VyY2UpIC5jbS1kZWYge1xuICAgIGNvbG9yOiB2YXIoLS1jb2RlLWRlZi1jb2xvcikgIWltcG9ydGFudDtcbn1cblxuOmlzKCN3cml0ZSwgI3R5cG9yYS1zb3VyY2UpIC5jbS1lcnJvciB7XG4gICAgY29sb3I6IHZhcigtLWNvZGUtZXJyb3ItY29sb3IpICFpbXBvcnRhbnQ7XG59XG5cbiN0eXBvcmEtc291cmNlIC5jbS1oZWFkZXIge1xuICAgIGNvbG9yOiB2YXIoLS1oZWFkaW5nLWNvbG9yKSAhaW1wb3J0YW50O1xufVxuXG46aXMoI3dyaXRlLCAjdHlwb3JhLXNvdXJjZSkgLmNtLWtleXdvcmQge1xuICAgIGNvbG9yOiB2YXIoLS1jb2RlLWtleXdvcmQtY29sb3IpICFpbXBvcnRhbnQ7XG59XG5cbiN3cml0ZSAuY20tbGluayB7XG4gICAgY29sb3I6IHZhcigtLWNvZGUtbGluay1jb2xvcikgIWltcG9ydGFudDtcbn1cblxuI3R5cG9yYS1zb3VyY2UgLmNtLWxpbmsge1xuICAgIGNvbG9yOiB2YXIoLS1saW5rLWNvbG9yKSAhaW1wb3J0YW50O1xufVxuXG4jd3JpdGUgLmNtLW1ldGEge1xuICAgIGNvbG9yOiB2YXIoLS1jb2RlLW1ldGEtY29sb3IpICFpbXBvcnRhbnQ7XG59XG5cbjppcygjd3JpdGUsICN0eXBvcmEtc291cmNlKSAuY20tbnVtYmVyIHtcbiAgICBjb2xvcjogdmFyKC0tY29kZS1udW1iZXItY29sb3IpICFpbXBvcnRhbnQ7XG59XG5cbjppcygjd3JpdGUsICN0eXBvcmEtc291cmNlKSAuY20tb3BlcmF0b3Ige1xuICAgIGNvbG9yOiB2YXIoLS1jb2RlLW9wZXJhdG9yLWNvbG9yKSAhaW1wb3J0YW50O1xufVxuXG46aXMoI3dyaXRlLCAjdHlwb3JhLXNvdXJjZSkgLmNtLXByb3BlcnR5IHtcbiAgICBjb2xvcjogdmFyKC0tY29kZS1wcm9wZXJ0eS1jb2xvcikgIWltcG9ydGFudDtcbn1cblxuOmlzKCN3cml0ZSwgI3R5cG9yYS1zb3VyY2UpIC5jbS1xdWFsaWZpZXIge1xuICAgIGNvbG9yOiB2YXIoLS1jb2RlLXF1YWxpZmllci1jb2xvcikgIWltcG9ydGFudDtcbn1cblxuOmlzKCN3cml0ZSwgI3R5cG9yYS1zb3VyY2UpIC5jbS1zdHJpbmcge1xuICAgIGNvbG9yOiB2YXIoLS1jb2RlLXN0cmluZy1jb2xvcikgIWltcG9ydGFudDtcbn1cblxuOmlzKCN3cml0ZSwgI3R5cG9yYS1zb3VyY2UpIC5jbS1zdHJpbmctMiB7XG4gICAgY29sb3I6IHZhcigtLWNvZGUtc3RyaW5nLTItY29sb3IpICFpbXBvcnRhbnQ7XG59XG5cbjppcygjd3JpdGUsICN0eXBvcmEtc291cmNlKSAuY20tdGFnIHtcbiAgICBjb2xvcjogdmFyKC0tY29kZS10YWctY29sb3IpICFpbXBvcnRhbnQ7XG59XG5cbjppcygjd3JpdGUsICN0eXBvcmEtc291cmNlKSAuY20tdHlwZSB7XG4gICAgY29sb3I6IHZhcigtLWNvZGUtdHlwZS1jb2xvcikgIWltcG9ydGFudDtcbn1cblxuOmlzKCN3cml0ZSwgI3R5cG9yYS1zb3VyY2UpIC5jbS1zLWlubmVyIC5jbS12YXJpYWJsZSB7XG4gICAgY29sb3I6IHZhcigtLWNvZGUtdmFyaWFibGUtY29sb3IpICFpbXBvcnRhbnQ7XG59XG5cbjppcygjd3JpdGUsICN0eXBvcmEtc291cmNlKSAuY20tcy1pbm5lciAuY20tdmFyaWFibGUtMiB7XG4gICAgY29sb3I6IHZhcigtLWNvZGUtdmFyaWFibGUtMi1jb2xvcikgIWltcG9ydGFudDtcbn1cblxuOmlzKCN3cml0ZSwgI3R5cG9yYS1zb3VyY2UpIC5jbS1zLWlubmVyIC5jbS12YXJpYWJsZS0zIHtcbiAgICBjb2xvcjogdmFyKC0tY29kZS12YXJpYWJsZS0zLWNvbG9yKSAhaW1wb3J0YW50O1xufVxuXG4vKiBOb3RlOiBtdXN0IGNvbWUgYWZ0ZXIgb3RoZXIgY2xhc3NlcyAqL1xuOmlzKCN3cml0ZSwgI3R5cG9yYS1zb3VyY2UpIC5jbS1icmFja2V0IHtcbiAgICBjb2xvcjogdmFyKC0tY29kZS1icmFja2V0LWNvbG9yKSAhaW1wb3J0YW50O1xufVxuXG4vKiBMYW5ndWFnZSBTZWxlY3RvciAqL1xuLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cbiN3cml0ZSAubWQtZmVuY2VzID4gLmNvZGUtdG9vbHRpcCxcbiN3cml0ZSAubWQtZmVuY2VzID4gLmNvZGUtdG9vbHRpcCAudHktY20tbGFuZy1pbnB1dCB7XG4gICAgYm9yZGVyLXJhZGl1czogdmFyKC0tYm9yZGVyLXJhZGl1cy1zKTtcbiAgICBmb250LWZhbWlseTogdmFyKC0tZm9udC1mYW1pbHktdWkpO1xuICAgIGZvbnQtc2l6ZTogdmFyKC0tZm9udC1zaXplLXMpO1xuICAgIGxpbmUtaGVpZ2h0OiB2YXIoLS1saW5lLWhlaWdodCk7XG59XG5cbiN3cml0ZSAubWQtZmVuY2VzID4gLmNvZGUtdG9vbHRpcCB7XG4gICAgYm90dG9tOiAxMDAlO1xuICAgIHJpZ2h0OiB2YXIoLS1jb2RlLXBhZGRpbmctbHIpO1xuICAgIHotaW5kZXg6IDM7XG4gICAgcGFkZGluZzogMDtcbiAgICBib3JkZXI6IDA7XG4gICAgY29sb3I6IHZhcigtLWNvZGUtbGFuZ3VhZ2UtY29sb3IpO1xuICAgIGJveC1zaGFkb3c6IG5vbmU7XG4gICAgb3BhY2l0eTogMTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoNTAlKTtcbn1cblxuLm1kLWZlbmNlcyA+IC5jb2RlLXRvb2x0aXAgLnR5LWNtLWxhbmctaW5wdXQge1xuICAgIG1pbi13aWR0aDogMTdjaDtcbiAgICBtYXJnaW46IDA7XG4gICAgcGFkZGluZzogMC4xNWVtO1xuICAgIGJvcmRlcjogMXB4IHNvbGlkIHRyYW5zcGFyZW50O1xuICAgIGJhY2tncm91bmQ6IHZhcigtLWNvZGUtbGFuZ3VhZ2UtYmFja2dyb3VuZCk7XG4gICAgbGluZS1oZWlnaHQ6IGNhbGModmFyKC0tZm9udC1zaXplLW1vbm8pICogdmFyKC0tbGluZS1oZWlnaHQpKTtcbn1cblxuLm1kLWZlbmNlcyA+IC5jb2RlLXRvb2x0aXAgLnR5LWNtLWxhbmctaW5wdXQ6Zm9jdXMge1xuICAgIGJvcmRlci1jb2xvcjogdmFyKC0tY29sb3ItcHJpbWFyeSk7XG4gICAgYmFja2dyb3VuZDogdmFyKC0taW5wdXQtYmFja2dyb3VuZCk7XG4gICAgY29sb3I6IHZhcigtLXRleHQtY29sb3IpO1xufVxuXG4vKiBEaWFncmFtcyAqL1xuLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cbi5tZC1kaWFncmFtLXBhbmVsLFxuLm1kLWRpYWdyYW0tcGFuZWwgc3ZnLFxuLm1kLWRpYWdyYW0tcGFuZWwtcHJldmlldyB7XG4gICAgbWFyZ2luOiAwO1xuICAgIHBhZGRpbmc6IDA7XG59XG5cbiN3cml0ZSAubWQtZGlhZ3JhbS5tZC1mb2N1cyAuY20tcy1pbm5lciB7XG4gICAgYm9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czogMDtcbiAgICBib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czogMDtcbn1cblxuI3dyaXRlIC5tZC1kaWFncmFtLm1kLWZvY3VzIC5tZC1kaWFncmFtLXBhbmVsIHtcbiAgICBib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOiB2YXIoLS1ib3JkZXItcmFkaXVzKTtcbiAgICBib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czogdmFyKC0tYm9yZGVyLXJhZGl1cyk7XG4gICAgYm9yZGVyLXdpZHRoOiAycHggMCAwIDA7XG4gICAgYm9yZGVyLWNvbG9yOiB2YXIoLS1jb2RlLWFjdGl2ZWxpbmUtYmFja2dyb3VuZCk7XG4gICAgYmFja2dyb3VuZDogdmFyKC0tY29kZS1iYWNrZ3JvdW5kKTtcbn1cblxuLm1kLWRpYWdyYW0tcGFuZWwtcHJldmlldyBzdmcsXG5tangtY29udGFpbmVyIHN2ZyB7XG4gICAgaW5zZXQ6IGF1dG87XG4gICAgbWFyZ2luOiAwIGF1dG87XG59XG5cbi5tZC1mZW5jZXMtYWR2LXBhbmVsLFxuLm1kLWRpYWdyYW0tcGFuZWwtcHJldmlldyBzdmcgdGV4dCxcbi5tZC1kaWFncmFtLXBhbmVsLXByZXZpZXcgc3ZnIC5sYWJlbCxcbi5tZC1kaWFncmFtLXBhbmVsLXByZXZpZXcgc3ZnIC5ub2RlTGFiZWwge1xuICAgIGZvbnQtZmFtaWx5OiB2YXIoLS1mb250LWZhbWlseS1kaWFncmFtKSAhaW1wb3J0YW50O1xufVxuXG4vKiBFcnJvcnMgKi9cbi5tZC1kaWFncmFtLXBhbmVsLWVycm9yOm5vdCg6ZW1wdHkpIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgbWFyZ2luLXRvcDogMTBweDtcbiAgICBwYWRkaW5nOiB2YXIoLS1jb2RlLXBhZGRpbmctdGIpIHZhcigtLWNvZGUtcGFkZGluZy1scik7XG4gICAgYm9yZGVyLXJhZGl1czogdmFyKC0tYm9yZGVyLXJhZGl1cyk7XG4gICAgYmFja2dyb3VuZDogdmFyKC0tY29kZS1lcnJvci1jb2xvcik7XG4gICAgY29sb3I6ICNmZmY7XG4gICAgZm9udC1zaXplOiB2YXIoLS1mb250LXNpemUtcyk7XG4gICAgZm9udC13ZWlnaHQ6IGNhbGModmFyKC0tZm9udC13ZWlnaHQpICsgMTAwKTtcbn1cblxuLm1kLWRpYWdyYW0tcGFuZWwtZXJyb3I6bm90KDplbXB0eSk6OmJlZm9yZSB7XG4gICAgY29udGVudDogJyc7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIGluc2V0OiBhdXRvIGF1dG8gMTAwJSA1MCU7XG4gICAgYm9yZGVyLXdpZHRoOiAxMXB4O1xuICAgIGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgYm9yZGVyLXRvcC13aWR0aDogMDtcbiAgICBib3JkZXItYm90dG9tLWNvbG9yOiB2YXIoLS1jb2RlLWVycm9yLWNvbG9yKTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTUwJSk7XG59XG5cbi5tZC1kaWFncmFtLm1kLWZvY3VzIC5tZC1kaWFncmFtLXBhbmVsLWVycm9yIHtcbiAgICBib3JkZXItdG9wLWxlZnQtcmFkaXVzOiAwO1xuICAgIGJvcmRlci10b3AtcmlnaHQtcmFkaXVzOiAwO1xufVxuXG4vKiBGbG93Y2hhcnRzICovXG5wcmUubWQtZGlhZ3JhbVtsYW5nPVwiZmxvd1wiXSAubWQtZGlhZ3JhbS1wYW5lbC1wcmV2aWV3IHtcbiAgICBwYWRkaW5nLWJvdHRvbTogMjBweDtcbn1cblxuLyogTWVybWFpZCAqL1xucHJlLm1kLWRpYWdyYW1bbWVybWFpZC10eXBlXSBzdmcge1xuICAgIHBhZGRpbmctdG9wOiA1cHg7XG4gICAgcGFkZGluZy1ib3R0b206IDEycHg7XG59XG5cbi8qIE1lcm1haWQ6IEdBTlRUICovXG5wcmUubWQtZGlhZ3JhbVttZXJtYWlkLXR5cGU9XCJnYW50dFwiXSBzdmcge1xuICAgIHBhZGRpbmc6IDhweCAwIDA7XG59XG5cbi8qIE1lcm1haWQ6IFBpZSAqL1xucHJlLm1kLWRpYWdyYW1bbWVybWFpZC10eXBlPVwicGllXCJdIHN2ZyB7XG4gICAgYXNwZWN0LXJhdGlvOiAxNi85O1xuICAgIHBhZGRpbmctdG9wOiAxNXB4O1xufVxuXG4vKiBNZXJtYWlkOiBTZXF1ZW5jZSAqL1xucHJlLm1kLWRpYWdyYW1bbWVybWFpZC10eXBlPVwic2VxdWVuY2VEaWFncmFtXCJdIHN2ZyB7XG4gICAgcGFkZGluZzogMTNweDtcbn1cblxuLyogU2VxdWVuY2UgKi9cbnByZS5tZC1mZW5jZXNbbGFuZz1cInNlcXVlbmNlXCJdIC5tZC1kaWFncmFtLXBhbmVsIHtcbiAgICBwYWRkaW5nOiAwO1xufVxuXG4vKiBNYXRoIChMYVRlWCAvIFRleCkgKi9cbi5tZC1tYXRoLWJsb2NrLm1kLWZvY3VzIHtcbiAgICBiYWNrZ3JvdW5kOiB2YXIoLS1jb2RlLWJhY2tncm91bmQpO1xufVxuXG4ubWQtbWF0aC1ibG9jayAuY29kZS10b29sdGlwIHtcbiAgICBib3gtc2hhZG93OiBub25lO1xufVxuXG4ubWQtbWF0aC1ibG9jayAubWQtcmF3YmxvY2stYmVmb3JlLFxuLm1kLW1hdGgtYmxvY2sgLm1kLXJhd2Jsb2NrLWFmdGVyIHtcbiAgICBwYWRkaW5nOiB2YXIoLS1jb2RlLXBhZGRpbmctdGIpIHZhcigtLWNvZGUtcGFkZGluZy1scik7XG59XG5cbi5tZC1tYXRoLWJsb2NrIC5tZC1yYXdibG9jay1iZWZvcmUge1xuICAgIHBhZGRpbmctYm90dG9tOiAwO1xufVxuXG4ubWQtbWF0aC1ibG9jayAubWQtcmF3YmxvY2stYWZ0ZXIge1xuICAgIHBhZGRpbmctdG9wOiAwO1xufVxuXG4ubWQtbWF0aC1ibG9jayAubWQtbWF0aC10YWctaW5wdXQge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICB6LWluZGV4OiAxO1xufVxuXG4ubWQtbWF0aC1ibG9jayAubWQtbWF0aGpheC1wcmV2aWV3IHtcbiAgICBib3JkZXItdG9wLXdpZHRoOiAycHg7XG4gICAgYm9yZGVyLWNvbG9yOiB2YXIoLS1wYW5lbC1ib3JkZXItY29sb3IpO1xuICAgIHBhZGRpbmc6IDIwcHggdmFyKC0tY29kZS1wYWRkaW5nLWxyKTtcbn1cblxuLyogUmF3IEJsb2NrcyAqL1xuLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cbi5tZC1yYXdibG9jazpob3ZlciAubWQtcmF3YmxvY2stY29udGFpbmVyLFxuLm1kLXJhd2Jsb2NrOmhvdmVyIC5tZC1yYXdibG9jay10b29sdGlwIHtcbiAgICBhbmltYXRpb246IG5vbmU7XG4gICAgdHJhbnNpdGlvbjogbm9uZTtcbn1cblxuLm1kLXJhd2Jsb2NrIC5tZC1yYXdibG9jay10b29sdGlwLFxuLm1kLXJhd2Jsb2NrOmhvdmVyIC5tZC1yYXdibG9jay10b29sdGlwIHtcbiAgICBiYWNrZ3JvdW5kOiB2YXIoLS1jb2RlLWxhbmd1YWdlLWJhY2tncm91bmQpO1xufVxuXG4ubWQtcmF3YmxvY2stdG9vbHRpcCxcbi5tZC1yYXdibG9jay10b29sdGlwLWJ0bixcbi5tZC1yYXdibG9jay10b29sdGlwLW5hbWUge1xuICAgIG1hcmdpbjogMDtcbiAgICBwYWRkaW5nOiAwO1xuICAgIGNvbG9yOiB2YXIoLS1jb2RlLWxhbmd1YWdlLWNvbG9yKTtcbiAgICBmb250LWZhbWlseTogdmFyKC0tZm9udC1mYW1pbHktdWkpO1xuICAgIGZvbnQtc2l6ZTogdmFyKC0tZm9udC1zaXplLXMpO1xuICAgIGxpbmUtaGVpZ2h0OiBjYWxjKHZhcigtLWZvbnQtc2l6ZS1tb25vKSAqIHZhcigtLWxpbmUtaGVpZ2h0KSk7XG4gICAgb3BhY2l0eTogMTtcbn1cblxuLm1kLXJhd2Jsb2NrOmhvdmVyIC5tZC1yYXdibG9jay1jb250YWluZXIge1xuICAgIGJhY2tncm91bmQ6IHZhcigtLWNvZGUtYmFja2dyb3VuZCk7XG4gICAgY29sb3I6IHZhcigtLWNvZGUtdGV4dC1jb2xvcik7XG59XG5cbi5tZC1yYXdibG9jayAubWQtcmF3YmxvY2stY29udHJvbDpub3QoLm1kLXJhd2Jsb2NrLXRvb2x0aXApIHtcbiAgICBiYWNrZ3JvdW5kOiBub25lO1xufVxuXG4ubWQtcmF3YmxvY2sgLm1kLXJhd2Jsb2NrLWlucHV0IHtcbiAgICBwYWRkaW5nOiAwO1xufVxuXG4ubWQtcmF3YmxvY2sgLm1kLXJhd2Jsb2NrLXRvb2x0aXAge1xuICAgIGluc2V0OiBhdXRvIDFyZW0gYXV0byBhdXRvO1xuICAgIHotaW5kZXg6IDQ7XG4gICAgaGVpZ2h0OiBhdXRvO1xuICAgIHBhZGRpbmc6IDAgMXJlbTtcbiAgICBib3JkZXItcmFkaXVzOiB2YXIoLS1ib3JkZXItcmFkaXVzLXMpO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTtcbn1cblxuLm1kLXJhd2Jsb2NrLXRvb2x0aXAtbmFtZSB+IC5tZC1yYXdibG9jay10b29sdGlwLWJ0biB7XG4gICAgd2lkdGg6IGF1dG87XG4gICAgbWFyZ2luLWxlZnQ6IDAuMjVlbTtcbn1cbiIsIi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4vKiBUYWJsZXNcbi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5maWd1cmUubWQtdGFibGUtZmlnIHtcbiAgICBtYXJnaW46IDJyZW0gMCAycmVtIDA7XG59XG5cbnRoZWFkIHtcbiAgICBib3JkZXItd2lkdGg6IHZhcigtLXRoZWFkLWJvcmRlci13aWR0aCwgMCk7XG4gICAgYm9yZGVyLWNvbG9yOiB2YXIoLS10aGVhZC1ib3JkZXItY29sb3IpO1xufVxuXG50Ym9keSB7XG4gICAgYm9yZGVyLXdpZHRoOiB2YXIoLS10Ym9keS1ib3JkZXItd2lkdGgsIDApO1xuICAgIGJvcmRlci1jb2xvcjogdmFyKC0tdGJvZHktYm9yZGVyLWNvbG9yKTtcbn1cblxudGJvZHkgdHIge1xuICAgIGJvcmRlci13aWR0aDogdmFyKC0tdHItYm9yZGVyLXdpZHRoLCAwKTtcbiAgICBib3JkZXItY29sb3I6IHZhcigtLXRyLWJvcmRlci1jb2xvcik7XG59XG5cbnRib2R5IHRyOm50aC1jaGlsZChldmVuKSB7XG4gICAgYmFja2dyb3VuZDogdmFyKC0tdHItYWx0LWJhY2tncm91bmQpO1xufVxuXG50aCB7XG4gICAgcGFkZGluZzogdmFyKC0tdGgtcGFkZGluZyk7XG4gICAgYm9yZGVyLXdpZHRoOiB2YXIoLS10aC1ib3JkZXItd2lkdGgsIDApO1xuICAgIGJvcmRlci1jb2xvcjogdmFyKC0tdGgtYm9yZGVyLWNvbG9yKTtcbiAgICBmb250LXdlaWdodDogdmFyKC0tdGgtZm9udC13ZWlnaHQpO1xuICAgIGNvbG9yOiB2YXIoLS10aC1jb2xvcik7XG59XG5cbnRkIHtcbiAgICBwYWRkaW5nOiB2YXIoLS10ZC1wYWRkaW5nKTtcbiAgICBib3JkZXItd2lkdGg6IHZhcigtLXRkLWJvcmRlci13aWR0aCwgMCk7XG4gICAgYm9yZGVyLWNvbG9yOiB2YXIoLS10ZC1ib3JkZXItY29sb3IpO1xufVxuXG4vKiBFZGl0aW5nIEJhciAqL1xuLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cbi5tZC10YWJsZS1lZGl0IHtcbiAgICB6LWluZGV4OiAxO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKDAsIC0wLjMwcmVtKTtcbiAgICBwYWRkaW5nOiAwIDVweDtcbiAgICBib3JkZXItcmFkaXVzOiB2YXIoLS1ib3JkZXItcmFkaXVzKTtcbiAgICBiYWNrZ3JvdW5kOiB2YXIoLS10YWJsZS1lZGl0LWJhY2tncm91bmQpO1xufVxuXG4ubWQtdGFibGUtZWRpdCB7XG4gICAgZGlzcGxheTogZmxleCAhaW1wb3J0YW50O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xufVxuXG4ubWQtdGFibGUtZWRpdCAucmlnaHQtdGgtYnV0dG9uIHtcbiAgICBmbG9hdDogbm9uZTtcbn1cblxuLm1kLXRhYmxlLWVkaXQgPiBzcGFuLnJpZ2h0LXRoLWJ1dHRvbiB7XG4gICAgbWFyZ2luLWxlZnQ6IGF1dG87XG59XG5cbi5tZC10YWJsZS1lZGl0ID4gc3Bhbi5yaWdodC10aC1idXR0b24gfiAucmlnaHQtdGgtYnV0dG9uICB7XG4gICAgbWFyZ2luLWxlZnQ6IDA7XG59XG5cbi5tZC10YWJsZS1lZGl0ID4gc3BhbltjbGFzc10gYnV0dG9uW2NsYXNzXS5idG4ge1xuICAgIG1hcmdpbjogMDtcbiAgICBwYWRkaW5nOiAzcHggOHB4IDNweCA4cHg7XG4gICAgYm9yZGVyOiAwO1xuICAgIGJvcmRlci1yYWRpdXM6IDA7XG4gICAgYmFja2dyb3VuZDogdmFyKC0tdGFibGUtZWRpdC1iYWNrZ3JvdW5kKTtcbiAgICBjb2xvcjogdmFyKC0tdGFibGUtZWRpdC1jb2xvcik7XG4gICAgZm9udC1zaXplOiBpbmhlcml0O1xuICAgIGxpbmUtaGVpZ2h0OiAxLjQ7XG59XG5cbi5tZC10YWJsZS1lZGl0ID4gc3BhbltjbGFzc10gYnV0dG9uW2NsYXNzXTpob3ZlciB7XG4gICAgYmFja2dyb3VuZDogdmFyKC0tdGFibGUtZWRpdC1ob3Zlci1iYWNrZ3JvdW5kKTtcbiAgICBjb2xvcjogdmFyKC0tdGFibGUtZWRpdC1ob3Zlci1jb2xvcik7XG59XG5cbi5tZC10YWJsZS1lZGl0ID4gc3BhbltjbGFzc10gYnV0dG9uW2NsYXNzXS5hY3RpdmUsXG4ubWQtdGFibGUtZWRpdCBidXR0b24uYWN0aXZlIC50eS1pY29uIHtcbiAgICBiYWNrZ3JvdW5kOiB2YXIoLS10YWJsZS1lZGl0LWFjdGl2ZS1iYWNrZ3JvdW5kKTtcbiAgICBjb2xvcjogdmFyKC0tdGFibGUtZWRpdC1hY3RpdmUtY29sb3IpO1xuICAgIGJveC1zaGFkb3c6IG5vbmU7XG59XG5cbi5tZC10YWJsZS1lZGl0IC5tZC10YWJsZS1tb3JlIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG59XG5cbi5tZC10YWJsZS1lZGl0IC5tZC10YWJsZS1tb3JlIC50eS1pY29uIHtcbiAgICBtYXJnaW46IDAgM3B4ICFpbXBvcnRhbnQ7XG59XG5cbi5tZC10YWJsZS1lZGl0IC5tZC10YWJsZS1tb3JlLWxhYmVsIHtcbiAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XG59XG5cbi8qIFJlc2l6ZSBQb3BvdmVyICovXG4vKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuLm1kLXRhYmxlLXJlc2l6ZS1wb3BvdmVyW2NsYXNzXSB7XG4gICAgd2lkdGg6IGF1dG87XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoMTBweCwgMnB4KTtcbiAgICBwYWRkaW5nOiAwO1xuICAgIGJvcmRlcjogMDtcbiAgICBiYWNrZ3JvdW5kOiB2YXIoLS1iYWNrZ3JvdW5kLWNvbG9yKTtcbiAgICBib3gtc2hhZG93OiBub25lO1xuICAgIGZpbHRlcjogdmFyKC0tZHJvcC1zaGFkb3cpO1xufVxuXG4ubWQtdGFibGUtcmVzaXplLXBvcG92ZXJbY2xhc3NdIC5hcnJvdyxcbi5tZC10YWJsZS1yZXNpemUtcG9wb3ZlcltjbGFzc10gLmFycm93OjphZnRlciB7XG4gICAgYm9yZGVyLWJvdHRvbS1jb2xvcjogdmFyKC0tYmFja2dyb3VuZC1jb2xvcik7XG59XG5cbi5tZC1ncmlkLWJvYXJkLXdyYXAge1xuICAgIHBhZGRpbmc6IDFyZW07XG4gICAgYm9yZGVyLXJhZGl1czogdmFyKC0tYm9yZGVyLXJhZGl1cyk7XG4gICAgYmFja2dyb3VuZDogdmFyKC0tYmFja2dyb3VuZC1jb2xvcik7XG59XG5cbnRhYmxlLm1kLWdyaWQtYm9hcmQge1xuICAgIG1hcmdpbjogYXV0bztcbiAgICBib3JkZXItc3BhY2luZzogM3B4O1xufVxuXG50YWJsZS5tZC1ncmlkLWJvYXJkIHRkIHtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIGJvcmRlci1yYWRpdXM6IDJweDtcbn1cblxudGFibGUubWQtZ3JpZC1ib2FyZCBhIHtcbiAgICBib3JkZXItY29sb3I6IHZhcigtLWJvcmRlci1jb2xvcik7XG4gICAgYmFja2dyb3VuZDogdmFyKC0taW5wdXQtYmFja2dyb3VuZCk7XG59XG5cbnRhYmxlLm1kLWdyaWQtYm9hcmQgLm1kLWdyaWQtZXh0LFxudGFibGUubWQtZ3JpZC1ib2FyZCAubWQtZ3JpZC1leHQgYSB7XG4gICAgYm9yZGVyLWNvbG9yOiB2YXIoLS10YWJsZS1lZGl0LWFjdGl2ZS1iYWNrZ3JvdW5kKTtcbiAgICBiYWNrZ3JvdW5kOiB2YXIoLS10YWJsZS1lZGl0LWFjdGl2ZS1iYWNrZ3JvdW5kKTtcbn1cblxudGFibGUubWQtZ3JpZC1ib2FyZDpob3ZlciAubWQtZ3JpZC1leHQsXG50YWJsZS5tZC1ncmlkLWJvYXJkOmhvdmVyIC5tZC1ncmlkLWV4dCBhIHtcbiAgICBib3JkZXItY29sb3I6IHZhcigtLXRhYmxlLWVkaXQtaG92ZXItYmFja2dyb3VuZCk7XG4gICAgYmFja2dyb3VuZDogdmFyKC0tdGFibGUtZWRpdC1ob3Zlci1iYWNrZ3JvdW5kKTtcbn1cblxudGFibGUubWQtZ3JpZC1ib2FyZDpob3ZlciBhOmhvdmVyLFxudGFibGUubWQtZ3JpZC1ib2FyZDpob3ZlciBhLm1kLWFjdGl2ZSB7XG4gICAgYmFja2dyb3VuZDogdmFyKC0tY29sb3ItcHJpbWFyeSk7XG4gICAgYm9yZGVyLWNvbG9yOiB2YXIoLS1jb2xvci1wcmltYXJ5KTtcbn1cblxuLm1kLWdyaWQtYm9hcmQtd3JhcCAjbWQtZ3JpZC13aWR0aCxcbi5tZC1ncmlkLWJvYXJkLXdyYXAgI21kLWdyaWQtaGVpZ2h0IHtcbiAgICBtYXJnaW46IDAgMC4ycmVtO1xuICAgIGJvcmRlci1jb2xvcjogdmFyKC0tYm9yZGVyLWNvbG9yKTtcbiAgICBib3JkZXItcmFkaXVzOiAycHg7XG4gICAgYmFja2dyb3VuZDogdmFyKC0taW5wdXQtYmFja2dyb3VuZCk7XG4gICAgbGluZS1oZWlnaHQ6IDEuNjtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG59XG5cbi5tZC1ncmlkLWJvYXJkLXdyYXAgLnBvcG92ZXItdGl0bGUge1xuICAgIG1hcmdpbjogMC41cmVtIDAgMCAwO1xuICAgIHBhZGRpbmc6IDA7XG4gICAgYm9yZGVyOiAwO1xufVxuXG4ubWQtZ3JpZC1ib2FyZC13cmFwIC5wb3BvdmVyLXRpdGxlIGJ1dHRvbiB7XG4gICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xufVxuXG4vKiBcIk1vcmVcIiBjb250ZXh0IG1lbnUgKi9cbi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG4jdGFibGUtbWVudSB7XG4gICAgd2lkdGg6IDMwY2g7XG59XG4iLCIvKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLyogVE9DXG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLm1kLXRvYyB7XG4gICAgbWFyZ2luOiAycmVtIDA7XG4gICAgZm9udC1zaXplOiB2YXIoLS1mb250LXNpemUtbSk7XG4gICAgbGluZS1oZWlnaHQ6IHZhcigtLWxpbmUtaGVpZ2h0KTtcbn1cblxuLm1kLXRvYy1jb250ZW50IHtcbiAgICBwYWRkaW5nOiAwO1xuICAgIG1hcmdpbjogMDtcbn1cblxuLm1kLXRvYzpmb2N1cyAubWQtdG9jLWNvbnRlbnQge1xuICAgIGJvcmRlcjogdW5zZXQ7XG4gICAgbWFyZ2luOiAwO1xufVxuXG4ubWQtdG9jLWgxIC5tZC10b2MtaW5uZXIge1xuICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgIGZvbnQtd2VpZ2h0OiB2YXIoLS1zdHJvbmctZm9udC13ZWlnaHQpO1xufVxuXG4ubWQtdG9jLWgyIC5tZC10b2MtaW5uZXIge1xuICAgIG1hcmdpbi1sZWZ0OiAxZW07XG59XG5cbi5tZC10b2MtaDMgLm1kLXRvYy1pbm5lciB7XG4gICAgbWFyZ2luLWxlZnQ6IDJlbTtcbn1cblxuLm1kLXRvYy1oNCAubWQtdG9jLWlubmVyIHtcbiAgICBtYXJnaW4tbGVmdDogM2VtO1xufVxuXG4ubWQtdG9jLWg1IC5tZC10b2MtaW5uZXIge1xuICAgIG1hcmdpbi1sZWZ0OiA0ZW07XG59XG5cbi5tZC10b2MtaDYgLm1kLXRvYy1pbm5lciB7XG4gICAgbWFyZ2luLWxlZnQ6IDVlbTtcbn1cblxuLyogRWRpdCBiYXIgKFRPQywgVGFibGVzKSAqL1xuLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cbiN3cml0ZSBkaXYubWQtdG9jLXRvb2x0aXAge1xuICAgIGluc2V0OiBhdXRvIGF1dG8gMTAwJSAtMTBweDtcbiAgICB3aWR0aDogY2FsYygxMDAlICsgMjBweCk7XG4gICAgcGFkZGluZzogMCA4cHg7XG4gICAgYm9yZGVyOiAwO1xuICAgIGJvcmRlci1yYWRpdXM6IHZhcigtLWJvcmRlci1yYWRpdXMpO1xuICAgIGJhY2tncm91bmQ6IHZhcigtLXRhYmxlLWVkaXQtYmFja2dyb3VuZCk7XG4gICAgZm9udC1zaXplOiB2YXIoLS1mb250LXNpemUtcyk7XG4gICAgbGluZS1oZWlnaHQ6IGNhbGModmFyKC0tZm9udC1zaXplLW0pICogdmFyKC0tbGluZS1oZWlnaHQpKTtcbn1cblxuLm1kLXRvYy5tZC1mb2N1cyAubWQtdG9jLXRvb2x0aXAsXG4ubWQtdG9jOmZvY3VzIC5tZC10b2MtdG9vbHRpcCB7XG4gICAgZGlzcGxheTogZmxleCAhaW1wb3J0YW50O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xufVxuIiwiLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi8qIE1lZ2EgTWVudSAoV2luZG93cyBvbmx5KVxuLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi5tZWdhbWVudS1vcGVuZWQgI3ctdHJhZmZpYy1saWdodHMge1xuICAgIGJhY2tncm91bmQ6IHZhcigtLW1vbm8tNTApO1xuICAgIGJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6IHZhcigtLWJvcmRlci1yYWRpdXMpO1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG59XG5cbi5wYWludC1ib3JkZXIgLm1lZ2FtZW51LWNvbnRlbnQge1xuICAgIGJvcmRlci1jb2xvcjogdmFyKC0tc2lkZWJhci1ib3JkZXItY29sb3IpO1xufVxuXG4ubWVnYW1lbnUtbWVudSxcbi5tZWdhbWVudS1vcGVuZWQgLm1lZ2FtZW51LW1lbnUge1xuICAgIHRyYW5zaXRpb246IC4ycztcbn1cblxuLm1lZ2FtZW51LW1lbnUge1xuICAgIGJvcmRlci1yaWdodDogdmFyKC0tc2lkZWJhci1ib3JkZXItd2lkdGgpIHNvbGlkIHZhcigtLXNpZGViYXItYm9yZGVyLWNvbG9yKTtcbiAgICBib3gtc2hhZG93OiBub25lO1xuICAgIGJhY2tncm91bmQ6IHZhcigtLXNpZGViYXItYmFja2dyb3VuZCk7XG4gICAgY29sb3I6IHZhcigtLXNpZGViYXItY29sb3IpO1xufVxuXG4vKiBIZWFkZXIgKi9cbi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG4ubWVnYW1lbnUtbWVudS1oZWFkZXIge1xuICAgIGJvcmRlci1ib3R0b206IHZhcigtLXNpZGViYXItYm9yZGVyLXdpZHRoKSBzb2xpZCB2YXIoLS1zaWRlYmFyLWJvcmRlci1jb2xvcik7XG59XG5cbiNtZWdhbWVudS1tZW51LWhlYWRlci10aXRsZSB7XG4gICAgZm9udC1zaXplOiB2YXIoLS1mb250LXNpemUtdWktbCk7XG4gICAgY29sb3I6IGluaGVyaXQgIWltcG9ydGFudDtcbn1cblxuI21lZ2FtZW51LWJhY2stYnRuIHtcbiAgICBib3JkZXItY29sb3I6IHRyYW5zcGFyZW50O1xuICAgIGNvbG9yOiB2YXIoLS1tb25vLTMwMCk7XG4gICAgZm9udC1zaXplOiBtaW4oMTZweCwgY2FsYyh2YXIoLS1mb250LXNpemUtdWktbCkgKiAwLjg1KSk7XG59XG5cbi5tZWdhbWVudS1tZW51LWhlYWRlcjppcyg6Zm9jdXMsIDpob3Zlcikge1xuICAgIGNvbG9yOiBpbmhlcml0O1xufVxuXG4ubWVnYW1lbnUtbWVudS1oZWFkZXI6aXMoOmZvY3VzLDpob3ZlcikgI21lZ2FtZW51LWJhY2stYnRuIHtcbiAgICBjb2xvcjogdmFyKC0tY29sb3ItcHJpbWFyeSk7XG59XG5cbi5tZWdhbWVudS1tZW51LWxpc3Qge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgIGJvcmRlcjogMDtcbiAgICBib3JkZXItcmFkaXVzOiBub25lO1xufVxuXG4ubWVnYW1lbnUtbWVudS1saXN0LmRyb3Bkb3duLW1lbnUgLmRpdmlkZXIge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLXNpZGViYXItYm9yZGVyLWNvbG9yKTtcbiAgICBvcGFjaXR5OiAxO1xufVxuXG4ubWVnYW1lbnUtbWVudS1saXN0ICNtLXNhdmVkIC5mYSB7XG4gICAgZm9udC1zaXplOiAxZW07XG59XG5cbi5tZWdhbWVudS1tZW51LWxpc3QgI20tc2F2ZWQgLmZhOjpiZWZvcmUge1xuICAgIGNvbnRlbnQ6IFwiXFxmMDBjXCI7XG4gICAgY29sb3I6IHZhcigtLWNvbG9yLXByaW1hcnkpO1xufVxuXG4ubWVnYW1lbnUtbWVudS1saXN0Om5vdCguc2F2ZWQpIGxpIGE6aG92ZXIge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xufVxuXG4ubWVnYW1lbnUtbWVudS1saXN0IGxpIHtcbiAgICBmb250LXNpemU6IHZhcigtLWZvbnQtc2l6ZS11aSk7XG59XG5cbi5tZWdhbWVudS1tZW51LWxpc3QgbGkgYS5hY3RpdmUsXG4ubWVnYW1lbnUtbWVudS1saXN0Om5vdCguc2F2ZWQpIGxpIGE6aG92ZXIge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWl0ZW0taG92ZXItYmctY29sb3IpO1xuICAgIGNvbG9yOiB2YXIoLS1pdGVtLWhvdmVyLXRleHQtY29sb3IpXG59XG5cbi5tZWdhbWVudS1vcGVuZWQgaGVhZGVyIHtcbiAgICBiYWNrZ3JvdW5kOiBub25lICFpbXBvcnRhbnQ7XG59XG5cbi8qIENvbnRlbnQgKi9cbi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG4ubWVnYW1lbnUtY29udGVudCB7XG4gICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG59XG5cbi5tZWdhbWVudS1vcGVuZWQgPiBjb250ZW50IHtcbiAgICBvcGFjaXR5OiAwLjI7XG4gICAgZmlsdGVyOiBibHVyKDEwcHgpO1xufVxuXG4jbS1pbXBvcnQtbG9jYWw6aG92ZXIgLnByZWZlcmVuY2UtaXRlbS1oaW50IHtcbiAgICAvKiBjb2xvcjogIzk5OTsgKi9cbn1cblxuLm1lZ2FtZW51LW1lbnUtcGFuZWwgaDEsXG4ubWVnYW1lbnUtbWVudS1wYW5lbCBoMiAge1xuICAgIGxpbmUtaGVpZ2h0OiAxO1xuICAgIGZvbnQtd2VpZ2h0OiB2YXIoLS1zdHJvbmctZm9udC13ZWlnaHQpO1xufVxuXG4ubWVnYW1lbnUtbWVudS1wYW5lbCBoMSB7XG4gICAgZm9udC1zaXplOiB2YXIoLS1mb250LXNpemUtdWkteGwpO1xufVxuXG4ubWVnYW1lbnUtbWVudS1wYW5lbCBoMiB7XG4gICAgZm9udC1zaXplOiB2YXIoLS1mb250LXNpemUtdWktbCk7XG59XG5cbi5sb25nLWJ0bixcbi5tZWdhbWVudS1tZW51LXBhbmVsIC5idG4sXG4jcmVjZW50LWZpbGUtcGFuZWwtYWN0aW9uLWJ0biB7XG4gICAgYmFja2dyb3VuZDogdmFyKC0tbW9uby0xMDApO1xuICAgIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLW1vbm8tMzAwKTtcbn1cblxuLmxvbmctYnRuOmhvdmVyLFxuLm1lZ2FtZW51LW1lbnUtcGFuZWwgLmJ0bjpob3ZlcixcbiNyZWNlbnQtZmlsZS1wYW5lbC1hY3Rpb24tYnRuOmhvdmVyIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1pdGVtLWhvdmVyLWJnLWNvbG9yKTtcbiAgICBjb2xvcjogdmFyKC0taXRlbS1ob3Zlci10ZXh0LWNvbG9yKSAhaW1wb3J0YW50O1xufVxuXG4ubG9uZy1idG4ge1xuICAgIHBhZGRpbmc6IDAuNzVlbSAxZW07XG4gICAgYm9yZGVyLXJhZGl1czogdmFyKC0tYm9yZGVyLXJhZGl1cyk7XG4gICAgZm9udC1zaXplOiBpbmhlcml0O1xufVxuXG4ubWVnYW1lbnUtbWVudS1wYW5lbCB0YWJsZSxcbi5tZWdhbWVudS1tZW51LXBhbmVsIHRhYmxlIDppcyh0aGVhZCwgdGJvZHksIHRyLCB0aCwgdGQpIHtcbiAgICBib3JkZXItc3R5bGU6IHNvbGlkO1xufVxuXG4ubWVnYW1lbnUtbWVudS1wYW5lbCB0YWJsZSB7XG4gICAgZm9udC1zaXplOiBpbmhlcml0ICFpbXBvcnRhbnQ7XG4gICAgZm9udC13ZWlnaHQ6IGluaGVyaXQ7XG4gICAgbGV0dGVyLXNwYWNpbmc6IGluaGVyaXQ7XG4gICAgbGluZS1oZWlnaHQ6IGluaGVyaXQ7XG59XG5cbi5tZWdhbWVudS1tZW51LXBhbmVsIHRhYmxlIHRoZWFkIHtcbiAgICBib3JkZXItd2lkdGg6IHZhcigtLXRoZWFkLWJvcmRlci13aWR0aCwgMCk7XG4gICAgYm9yZGVyLWNvbG9yOiB2YXIoLS10aGVhZC1ib3JkZXItY29sb3IpO1xufVxuXG4ubWVnYW1lbnUtbWVudS1wYW5lbCB0YWJsZSB0Ym9keSB7XG4gICAgYm9yZGVyLXdpZHRoOiB2YXIoLS10Ym9keS1ib3JkZXItd2lkdGgsIDApO1xuICAgIGJvcmRlci1jb2xvcjogdmFyKC0tdGJvZHktYm9yZGVyLWNvbG9yKTtcbn1cblxuLm1lZ2FtZW51LW1lbnUtcGFuZWwgdGFibGUgdGJvZHkgdHIge1xuICAgIGJvcmRlci13aWR0aDogdmFyKC0tdHItYm9yZGVyLXdpZHRoLCAwKTtcbiAgICBib3JkZXItY29sb3I6IHZhcigtLXRyLWJvcmRlci1jb2xvcik7XG4gICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQgIWltcG9ydGFudDtcbn1cblxuLm1lZ2FtZW51LW1lbnUtcGFuZWwgdGFibGUgdGJvZHkgdHI6bnRoLWNoaWxkKGV2ZW4pIHtcbiAgICBiYWNrZ3JvdW5kOiB2YXIoLS10ci1hbHQtYmFja2dyb3VuZCkgIWltcG9ydGFudDtcbn1cblxuLm1lZ2FtZW51LW1lbnUtcGFuZWwgdGFibGUgdHIgdGgge1xuICAgIHBhZGRpbmc6IHZhcigtLXRoLXBhZGRpbmcpO1xuICAgIGJvcmRlci13aWR0aDogdmFyKC0tdGgtYm9yZGVyLXdpZHRoLCAwKTtcbiAgICBib3JkZXItY29sb3I6IHZhcigtLXRoLWJvcmRlci1jb2xvcik7XG4gICAgZm9udC13ZWlnaHQ6IHZhcigtLXRoLWZvbnQtd2VpZ2h0KTtcbiAgICBjb2xvcjogdmFyKC0tdGgtY29sb3IpXG59XG5cbi5tZWdhbWVudS1tZW51LXBhbmVsIHRhYmxlIHRyIHRkIHtcbiAgICBwYWRkaW5nOiB2YXIoLS10ZC1wYWRkaW5nKTtcbiAgICBib3JkZXItd2lkdGg6IHZhcigtLXRkLWJvcmRlci13aWR0aCwgMCk7XG4gICAgYm9yZGVyLWNvbG9yOiB2YXIoLS10ZC1ib3JkZXItY29sb3IpO1xufVxuXG4jcmVjZW50LWZpbGUtcGFuZWwge1xuICAgIGZvbnQtc2l6ZTogaW5oZXJpdDtcbn1cblxuI3JlY2VudC1kb2N1bWVudC10YWJsZSB7XG4gICAgbWFyZ2luLXRvcDogMS41ZW0gIWltcG9ydGFudDtcbn1cblxuQG1lZGlhIChtYXgtd2lkdGg6IDUzMHB4KSB7XG4gICAgLm1lZ2FtZW51LW1lbnUtaGVhZGVyICNtZWdhbWVudS1tZW51LWhlYWRlci10aXRsZSB7XG4gICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgfVxuXG4gICAgLm1lZ2FtZW51LW1lbnUtbGlzdCBsaSBhIHtcbiAgICAgICAgZm9udC1zaXplOiAyNHB4O1xuICAgIH1cblxuICAgIC5tZWdhbWVudS1tZW51LWxpc3QgbGkgYS5hY3RpdmUge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1pdGVtLWhvdmVyLWJnLWNvbG9yKTtcbiAgICAgICAgY29sb3I6IGluaGVyaXQ7XG4gICAgfVxufVxuXG4vKiBNb2RhbHMgKi9cbi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG4uZXJyb3ItZGlhbG9nIC5tb2RhbC1oZWFkZXIge1xuICAgIC8qIGJvcmRlci1sZWZ0OiA4cHggI2Q5NTM0ZiBzb2xpZDsgKi9cbn1cblxuLm1vZGFsLW9wZW4gLm1vZGFsLmZhZGUuaW4ge1xuICAgIC8qIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMCwgMCwgMCwgLjEpICovXG59XG5cbi5tZWdhbWVudS1vcGVuZWQubW9kYWwtb3BlbiAubW9kYWwuZmFkZS5pbiB7XG4gICAgLyogYmFja2dyb3VuZC1jb2xvcjogcmdiYSgwLCAwLCAwLCAuMzUpICovXG59XG5cbi8qIEFib3V0ICovXG4vKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuI2Fib3V0LWNvbnRlbnQtbGljZW5zZS1idXR0b24ge1xuICAgIGJvcmRlci1yYWRpdXM6IHZhcigtLWJvcmRlci1yYWRpdXMpO1xuICAgIGZvbnQtc2l6ZTogaW5oZXJpdDtcbn1cblxuLmFib3V0LWNvbnRlbnQtc2xvZ29uIHtcbiAgICBmb250LWZhbWlseTogdmFyKC0tZm9udC1mYW1pbHkpO1xuICAgIGxldHRlci1zcGFjaW5nOiBub3JtYWw7XG4gICAgY29sb3I6IHZhcigtLWNvbG9yLXNlY29uZGFyeSk7XG59XG5cbi5hYm91dC1jb250ZW50LWhpbnQge1xuICAgIGZvbnQtc2l6ZTogaW5oZXJpdDtcbiAgICAvKiBvcGFjaXR5OiAuNjsgKi9cbn1cblxuLmFib3V0LWNvbnRlbnQtbWV0YSB7XG4gICAgLyogb3BhY2l0eTogLjg7ICovXG4gICAgZm9udC1zaXplOiBpbmhlcml0O1xuICAgIGZvbnQtZmFtaWx5OiB2YXIoLS1mb250LWZhbWlseS1tb25vKTtcbn1cblxuLyogVGhlbWUgVGh1bWJuYWlscyAqL1xuLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cbi50aGVtZS1wcmV2aWV3LWNvbnRlbnQge1xuICAgIGJvcmRlci1yYWRpdXM6IHZhcigtLWJvcmRlci1yYWRpdXMpO1xuICAgIGJvcmRlcjogbm9uZVxufVxuXG4udGhlbWUtcHJldmlldy1kaXYge1xuICAgIC0tYm9yZGVyLXdpZHRoOiA0cHg7XG5cbiAgICBib3JkZXI6IHZhcigtLWJvcmRlci13aWR0aCkgc29saWQgdmFyKC0tbW9uby0yMDApO1xuICAgIGNvbG9yOiB2YXIoLS1zaWRlLWJhci1tZW51LWFjdGl2ZS10aW50KTtcbiAgICBib3JkZXItcmFkaXVzOiBjYWxjKHZhcigtLWJvcmRlci1yYWRpdXMpICsgdmFyKC0tYm9yZGVyLXdpZHRoKSk7XG59XG5cbi50aGVtZS1wcmV2aWV3LWRpdjpob3ZlciB7XG4gICAgYm9yZGVyLWNvbG9yOiB2YXIoLS1jb2xvci1wcmltYXJ5KTtcbn1cblxuLnRoZW1lLXByZXZpZXctZGl2LmFjdGl2ZSxcbi50aGVtZS1wcmV2aWV3LWRpdi5hY3RpdmU6aG92ZXIge1xuICAgIGJvcmRlci1jb2xvcjogdmFyKC0tY29sb3ItcHJpbWFyeSk7XG59XG5cbi50aGVtZS1wcmV2aWV3LWRpdiAuZmEge1xuICAgIGJvdHRvbTogOHB4O1xuICAgIGxlZnQ6IGF1dG87XG4gICAgcmlnaHQ6IDhweDtcbiAgICBwYWRkaW5nOiAwLjI1ZW07XG4gICAgYm9yZGVyLXJhZGl1czogNTAlO1xuICAgIGJhY2tncm91bmQ6IHZhcigtLWNvbG9yLXByaW1hcnkpO1xuICAgIGNvbG9yOiAjZmZmO1xuICAgIGZvbnQtc2l6ZTogMTI1JTtcbn1cblxuLnRoZW1lLXByZXZpZXctZGl2IC5mYTo6YmVmb3JlIHtcbiAgICBjb250ZW50OiBcIlxcZjAwY1wiO1xufVxuIl19 */


</style><title>README</title>
</head>
<body class='typora-export os-windows'><div class='typora-export-content'>
<div id='write'  class=''><p><img src="https://raw.githubusercontent.com/marcoalopez/GrainSizeTools/master/FIGURES/new_header.webp" referrerpolicy="no-referrer"></p><p><em><span>Maintained by </span><a href='https://marcoalopez.github.io/'><span>Marco A. Lopez-Sanchez</span></a><span> - This website was last modified: 2024-06-26</span></em></p><p><a href='https://doi.org/10.21105/joss.00863'><span>GrainSizeTools</span></a><span> is a free, open-source, cross-platform script written in </span><a href='https://www.python.org/'><span>Python</span></a><span> that provides tools for (1) quantifying and visualising grain size populations, (2) applying stereological methods to approximate the true grain size distribution from 2D sections and (3) estimating differential stress for different mineral phases via paleopiezometry. The script has been designed to be </span><strong><span>accessible to users with no previous experience of the Python programming language</span></strong><span> and focuses on scientific reproducibility by including </span><strong><span>several ready-made templates for the different use cases</span></strong><span>. For users with programming skills, the script is organised in a modular (functional) way to facilitate reuse and code extension.</span></p><p><strong><span>Latest release: v3.2.0</span></strong><span></span><br/><strong><span>Date: 2024-06-26</span></strong><span></span><br/><span>See notes at </span><a href='https://github.com/marcoalopez/GrainSizeTools/releases/tag/v3.2.0' target='_blank' class='url'>https://github.com/marcoalopez/GrainSizeTools/releases/tag/v3.2.0</a>
<a href='https://github.com/marcoalopez/GrainSizeTools'><span>View project on GitHub</span></a></p><h2 id='features-at-a-glance'><span>Features at a glance</span></h2><ul><li><p><span>Import and manipulate tabular data sets including text, CSV, or Excel formats via Pandas.</span></p></li><li><p><span>Fully automated descriptive statistics of grain size populations including:</span></p><ul><li><p><span>Multiple averages (arithmetic and geometric means, median, and frequency peak (&quot;mode&quot;) via Gaussian Kernel Density Estimator)</span></p></li><li><p><span>Estimation of robust confidence intervals (including some specific methods for lognormal populations such as the modified Cox or the GCI method)</span></p></li><li><p><span>Measures of dispersion and population shape</span></p></li><li><p><span>Normality and lognormality tests</span></p></li></ul></li><li><p><span>Estimation of differential stress using palaeopiezometers. It includes piezometric relations for quartz, olivine, calcite and feldspar (more to come!)</span></p></li><li><p><span>Ready-to-publish plots in bitmap or vector format (see screenshots below), including:</span></p><ul><li><p><span>Histograms and kernel density estimates</span></p></li><li><p><span>Area or volume-weighted plots</span></p></li><li><p><span>Normalized plots</span></p></li><li><p><span>Quantile-quantile plots, and more</span></p></li></ul></li><li><p><span>Stereology methods (approximating the true 3D grain size distribution from data collected in flat sections):</span></p><ul><li><p><span>Saltykov method</span></p></li><li><p><span>Two-step method (log-normal fitting, shape characterization)</span></p></li><li><p><span>Estimate the volume fraction occupied by any grain size range</span></p></li></ul></li></ul><h2 id='download'><span>Download</span></h2><p><a href='https://github.com/marcoalopez/GrainSizeTools/releases' target='_blank' class='url'>https://github.com/marcoalopez/GrainSizeTools/releases</a><span>  </span></p><h2 id='documentation'><span>Documentation</span></h2><p><a href='https://github.com/marcoalopez/GrainSizeTools/wiki' target='_blank' class='url'>https://github.com/marcoalopez/GrainSizeTools/wiki</a></p><h2 id='screenshots'><span>Screenshots</span></h2><p><img src="https://raw.githubusercontent.com/marcoalopez/GrainSizeTools/master/FIGURES/screenshots-01.webp" referrerpolicy="no-referrer"></p><h2 id='citation-guidelines'><span>Citation guidelines</span></h2><p><span>If you have used the script, please consider citing the following paper:</span></p><blockquote><p><span>Lopez-Sanchez, Marco A. (2018). GrainSizeTools: a Python script for grain size analysis and paleopiezometry based on grain size. </span><em><span>Journal of Open Source Software</span></em><span> 3, 863, </span><a href='https://doi.org/10.21105/joss.00863' target='_blank' class='url'>https://doi.org/10.21105/joss.00863</a></p></blockquote><p><span>By citing this paper, you are giving proper credit to the author and acknowledging his work.</span></p><h2 id='license'><span>License</span></h2><p><span>GrainSizeTools script is licensed under the </span><a href='http://www.apache.org/licenses/LICENSE-2.0'><span>Apache License, Version 2.0 (the &quot;License&quot;)</span></a></p><p><span>The documentation of GrainSizeTools script is licensed under a </span><a href='https://creativecommons.org/licenses/by-nc-sa/4.0/'><span>Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License (CC BY-NC-SA 4.0)</span></a><span>. </span></p><h2 id='community-guidelines'><span>Community guidelines</span></h2><p><span>The GitHub site where the project is hosted offers several options (you&#39;ll need a GitHub account, it&#39;s free!)::</span></p><ul><li><p><span>Open a </span><a href='https://github.com/marcoalopez/GrainSizeTools/discussions'><span>discussion</span></a><span>: This is a place to:</span></p><ul><li><p><span>Ask questions you are wondering about.</span></p></li><li><p><span>Requests for specific features or share ideas.</span></p></li><li><p><span>Interact with the developers.</span></p></li></ul></li><li><p><span>Open an </span><a href='https://github.com/marcoalopez/GrainSizeTools/issues'><span>issue</span></a><span>: This is a place to report or track bugs.</span></p></li><li><p><span>Make a </span><a href='https://github.com/marcoalopez/GrainSizeTools/pulls'><span>pull request</span></a><span>: You have modified, corrected or added a feature to one of the notebooks and send it to one of the developers to review it and add it to the main page.</span></p></li></ul><hr /><p><em><span>Copyright © 2017-2024 Marco A. Lopez-Sanchez</span></em><span>  </span></p><div class="md-alert md-alert-warning warning"><p><span class='md-alert-text md-alert-text-warning'><svg viewBox="0 0 16 16" version="1.1" width="1em" height="1em" aria-hidden="true"><path d="M6.457 1.047c.659-1.234 2.427-1.234 3.086 0l6.082 11.378A1.75 1.75 0 0 1 14.082 15H1.918a1.75 1.75 0 0 1-1.543-2.575Zm1.763.707a.25.25 0 0 0-.44 0L1.698 13.132a.25.25 0 0 0 .22.368h12.164a.25.25 0 0 0 .22-.368Zm.53 3.996v2.5a.75.75 0 0 1-1.5 0v-2.5a.75.75 0 0 1 1.5 0ZM9 11a1 1 0 1 1-2 0 1 1 0 0 1 2 0Z"></path></svg>Warning</span><br><span>Please note that the information on this website and in the script documentation is provided without any warranty of any kind, either expressed or implied. It may therefore include technical inaccuracies or typographical errors. The author reserves the right to make changes or improvements to the content of this website and the script documentation at any time without notice. This website and its documentation are not responsible for the content of external links. </span></p></div><p><em><span>Hosted on GitHub Pages — This website was created with </span><a href='https://typora.io/'><span>Typora</span></a></em></p><p><img src="https://raw.githubusercontent.com/marcoalopez/GrainSizeTools/master/FIGURES/footer.webp" referrerpolicy="no-referrer"></p></div></div>
</body>
</html>